本示例向您展示如何创建LIFO(后进先出)Deque。我们调用Deque.peekLast()方法从中获取最后一个元素Deque,轮询最后一个元素,然后重复进行直到所有元素都被读取为止。
package org.nhooo.example.util; import java.util.Deque; import java.util.LinkedList; public class DequeLifoDemo { public static void main(String[] args) { // 创建一个双端队列的实例,在这里我们使用LinkedList // 实现Deque接口的类。 Deque<String> deque = new LinkedList<>(); deque.add("one"); deque.add("two"); deque.add("three"); deque.add("four"); StringBuilder in = new StringBuilder("Items IN in order : "); // 返回此双端队列中的元素的迭代器 // 适当的顺序 for (String s : deque) { in.append(s).append(","); } in.deleteCharAt(in.length() - 1); System.out.println(in.toString()); StringBuilder out = new StringBuilder("Items OUT in order: "); for (int i = 0; i < deque.size();) { out.append(deque.peekLast()).append(","); // 检索并删除此双端队列的最后一个元素, // 或如果此双端队列为空,则返回null。 deque.pollLast(); } out.deleteCharAt(out.length() - 1); System.out.println(out.toString()); } }
我们的代码片段的输出是:
Items IN in order : one,two,three,four Items OUT in order: four,three,two,one