欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java deque和queue

錢艷冰2年前8瀏覽0評論

Java中的Deque和Queue都是用來存儲和操作一組對象的容器。

Deque是雙端隊列(Double Ended Queue)的縮寫,可以在隊列的兩端添加或移除元素,既可以當作隊列使用,也可以當作棧使用。Deque接口繼承自Queue接口,并在其基礎上增加了雙端操作方法,即在隊首和隊尾都可以添加或移除元素。

Deque<String> deque = new LinkedList<>();
deque.addLast("last");
deque.addFirst("first");
deque.offerLast("offerLast");
deque.offerFirst("offerFirst");
System.out.println(deque.pollFirst());
System.out.println(deque.pollLast());
System.out.println(deque.peekFirst());
System.out.println(deque.peekLast());

Queue是隊列的意思,其主要操作是將元素添加到末尾并從開頭移除元素。Queue接口有兩個重要的實現類:LinkedList和PriorityQueue。

LinkedList除了實現Deque接口,還實現了Queue接口,因此可以當作普通隊列使用。與Deque不同的是, LinkedList只能在隊頭添加和移除元素。

Queue<String> queue = new LinkedList<>();
queue.add("add");
queue.offer("offer");
System.out.println(queue.poll());
System.out.println(queue.peek());

PriorityQueue是優先級隊列,是通過二叉堆實現的。在PriorityQueue中,每次加入元素時都會按照元素的大小自動排序。因此,在使用PriorityQueue時,需要讓元素實現Comparable接口或者使用Comparator對象來指定排序方式。

Queue<Integer> queue = new PriorityQueue<>();
queue.add(2);
queue.add(1);
queue.add(3);
System.out.println(queue.poll());
System.out.println(queue.peek());