栈
先进后出(FILO)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Stack<Integer> stack = new Stack<>();
stack.push(1); stack.push(2); stack.push(3);
System.out.println("栈顶元素: " + stack.peek());
System.out.println("弹出元素: " + stack.pop());
System.out.println("新的栈顶元素: " + stack.peek());
|
- push: 将元素压入栈顶。
- pop: 移除并返回栈顶元素。
- peek: 返回栈顶元素但不移除它。
队列
先进先出(FIFO)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Queue<Integer> queue = new LinkedList<>();
queue.offer(1); queue.offer(2); queue.offer(3);
System.out.println("队列头部元素: " + queue.peek());
System.out.println("移除的元素: " + queue.poll());
System.out.println("新的队列头部元素: " + queue.peek());
System.out.println("队列是否为空: " + queue.isEmpty());
System.out.println("队列的大小: " + queue.size());
|
- offer: 将元素添加到队列尾部。
- poll: 移除并返回队列头部的元素。
- peek: 返回队列头部的元素但不移除它。
双端队列(Deque)
双端队列(Deque, Double Ended Queue)是允许在两端进行插入和删除操作的队列。Java中的ArrayDeque
类是Deque
接口的一个实现。
1 2 3 4 5 6 7 8 9 10
| Deque<Integer> deque = new ArrayDeque<>();
deque.addFirst(1); deque.addLast(2);
System.out.println("移除头部元素: " + deque.removeFirst()); System.out.println("移除尾部元素: " + deque.removeLast());
|