Java Deque是一種雙端隊列,是Java集合框架下的一種接口,同時繼承自Queue接口。Deque的特點是能夠在隊列的兩端進行入隊和出隊操作。相比于Queue,Deque不僅支持先進先出(FIFO)的方式進行操作,還支持后進先出(LIFO)的方式。
Deque<String> deque = new LinkedList<>(); deque.addLast("a"); deque.addLast("b"); deque.addFirst("c"); deque.offerFirst("d"); System.out.println(deque); // [d, c, a, b]
上述代碼演示了如何使用Java Deque接口實現雙端隊列。首先,我們創建一個LinkedList對象作為Deque的實例。然后,我們分別使用addLast(), addFirst(), offerFirst()等方法在隊列的不同端點添加元素,最后打印整個隊列的內容。
除了上述提到的基本方法,Deque還有一些其他常用的方法。例如,pollFirst()和pollLast()方法分別從隊列的頭部和尾部獲取并刪除元素,peekFirst()和peekLast()方法分別返回隊列的頭部和尾部的元素但不刪除,等等。
Deque<Integer> deque = new ArrayDeque<>(); deque.push(1); deque.push(2); deque.push(3); System.out.println(deque); // [3, 2, 1] int first = deque.peekFirst(); // 3 int last = deque.peekLast(); // 1 System.out.println(first); // 3 System.out.println(last); // 1
上述代碼演示了如何使用ArrayDeque實現雙端隊列。首先,我們創建一個ArrayDeque對象作為Deque的實例。然后,我們使用push()方法在隊列的頭部添加元素,最后使用peekFirst()和peekLast()方法獲取不同端點的元素但不刪除它們。
總之,Java Deque是一個靈活、高效的數據結構,可以在隊列兩端進行入隊和出隊操作。由于Deque繼承自Queue接口,因此它適用于許多Queue適用的場景,同時也可以支持更多其他的操作。