java中的stacks,queues,priority queues
时间: 2023-08-07 15:21:09 浏览: 136
Java中提供了许多数据结构类,其中也包括栈(Stack)、队列(Queue)和优先队列(PriorityQueue)。
Stack类是一种后进先出(LIFO)的数据结构,它继承自Vector类。可以使用push()方法将元素压入栈中,使用pop()方法将元素从栈中弹出,使用peek()方法查看栈顶元素但不弹出。例如:
```
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.pop()); // 3
System.out.println(stack.peek()); // 2
```
Queue接口是一种先进先出(FIFO)的数据结构,它有许多实现类,例如LinkedList和ArrayDeque。可以使用offer()方法将元素添加到队列中,使用poll()方法从队列中取出并删除头部元素,使用peek()方法查看队列头部元素但不删除。例如:
```
Queue<Integer> queue = new LinkedList<>();
queue.offer(1);
queue.offer(2);
queue.offer(3);
System.out.println(queue.poll()); // 1
System.out.println(queue.peek()); // 2
```
PriorityQueue类是一种优先队列,它按照元素的自然顺序或者指定的比较器顺序对元素进行排序。可以使用add()方法将元素添加到队列中,使用remove()方法删除并返回队列中的头部元素,使用peek()方法查看队列头部元素但不删除。例如:
```
PriorityQueue<Integer> queue = new PriorityQueue<>();
queue.add(3);
queue.add(1);
queue.add(2);
System.out.println(queue.remove()); // 1
System.out.println(queue.peek()); // 2
```
阅读全文