1)实现之优先队列PriorityQueue(传入排序规则) // 因此这种并不是先进先出
package org.example.testPriorityQueue;
import java.util.PriorityQueue;
import java.util.Queue;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue = new PriorityQueue<>((v1, v2) -> v2 - v1);
queue.add(3);
queue.add(34);
queue.add(354);
queue.add(31);
queue.add(23);
queue.add(4243);
queue.add(1756733);
queue.add(113);
System.out.println(queue);
}
}
/*
[1756733, 113, 4243, 31, 23, 34, 354, 3]
*/
2)Queue队列的使用1.offer添加 2.forEach遍历 3.poll删除 4.peek查看 // 先进先出
package org.example.testQueue;
import java.util.LinkedList;
import java.util.Queue;
public class TestQueue {
public static void main(String[] args) {
// step1:offer往队列添加元素。 add方法在队列满时会抛出异常
Queue<String> queue = new LinkedList<>();
queue.offer("a");
queue.offer("d");
queue.offer("c");
queue.offer("b");
queue.offer("b");
queue.offer("e");
// step2:增强for循环遍历
queue.forEach(v -> System.out.println(v));
// step3:poll删除一个元素。 remove方法在queue中没有元素时会抛出异常
System.out.println();
queue.poll();
queue.forEach(v -> System.out.println(v));
// step4: peek查看头的元素。element方法可能会抛出异常
System.out.println();
System.out.println(queue.peek());
}
}
/*
a
d
c
b
b
e
d
c
b
b
e
d
*/