本文主要是介绍Java常见数据结构“ 栈与队列 ”学完就去编程!!!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、栈(Stack):
栈是一种后进先出(LIFO,Last In First Out)的数据结构,类似于现实生活中的一叠盘子,最后放入的盘子最先被取出。
主要方法和特点:
push(E e)
: 将元素推入栈顶。pop()
: 弹出栈顶元素并返回。peek()
: 返回但不删除栈顶元素。isEmpty()
: 判断栈是否为空。search(Object o)
: 查找指定元素在栈中的位置,如果存在返回位置(从1开始),不存在返回-1。
栈的常见应用包括函数调用的管理、表达式求值、浏览器的历史记录等。
示例代码:
import java.util.Stack;public class Main {public static void main(String[] args) {Stack<Integer> stack = new Stack<>();stack.push(1);stack.push(2);stack.push(3);System.out.println("Top element: " + stack.peek()); // Output: 3while (!stack.isEmpty()) {System.out.println(stack.pop());}}
}
二、队列(Queue):
队列是一种先进先出(FIFO,First In First Out)的数据结构,类似于排队购物时先来的人先付款,后来的人后付款。
主要方法和特点:
offer(E e)
: 将元素添加到队列末尾。poll()
: 移除并返回队列头部的元素。peek()
: 返回但不移除队列头部的元素。isEmpty()
: 判断队列是否为空。size()
: 返回队列中的元素个数。
队列的常见应用包括任务调度、消息传递、广度优先搜索(BFS)等。
示例代码:
import java.util.LinkedList;
import java.util.Queue;public class Main {public static void main(String[] args) {Queue<Integer> queue = new LinkedList<>();queue.offer(1);queue.offer(2);queue.offer(3);System.out.println("First element: " + queue.peek()); // Output: 1while (!queue.isEmpty()) {System.out.println(queue.poll());}}
}
三、Java中的栈和队列:
在Java中,栈和队列都有现成的实现类。常用的栈实现类是 java.util.Stack
,而常用的队列实现类是 java.util.Queue
接口的各种实现,比如 java.util.LinkedList
、java.util.ArrayDeque
等。
这篇关于Java常见数据结构“ 栈与队列 ”学完就去编程!!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!