queue2.offer(newUser(48)); queue2.offer(newUser(8)); System.out.println(queue2);//[User{age=8}, User{age=12}, User{age=48}, User{age=32}]} } Deque接口和ArrayDeque实现类: Deque接口是Queue接口的子接口,它代表一个双端队列: 特点: 添
Deque是双端队列,在队列的两端均可以插入或删除元素。 ArrayDeque 作为双端队列的实现类,是基于可变长的数组和双指针来实现,常常被用于实现栈功能,以此来替代曾经那个笨拙的Stack。 【代码示例1】 // 创建一个ArrayDeque ArrayDeque<String> deque =newArrayDeque<>(); // 添加元素 deque.add("a"); deque.add(...
util.ArrayDeque; import java.util.Deque; public class IntegerStack { private Deque<Integer> data = new ArrayDeque<Integer>(); public void push(Integer element) { data.addFirst(element); } public Integer pop() { return data.removeFirst(); } public Integer peek() { return data.peekFirst()...
System.out.println("获取最后一个元素,但不删除:" + arrayDeque.getLast()); System.out.println("在双端队列头部插入元素:" + arrayDeque.offerFirst("booknew01")); System.out.println("在双端队列尾部插入元素:" + arrayDeque.offerLast("booknew02")); System.out.println("新栈:" + arrayDeque); ...
// 创建一个ArrayDequeArrayDeque<String>deque=newArrayDeque<>();// 添加元素deque.add("a");deque....
newArrayDeque<>(100);// 指定初始容量 AI代码助手复制代码 批量操作:优先使用addAll/removeAll方法 遍历优化: // 使用迭代器比for-each更高效Iterator<String> it = deque.iterator();while(it.hasNext()) {Stringitem = it.next(); } AI代码助手复制代码 ...
下面是一个使用ArrayDeque的简单示例代码: importjava.util.ArrayDeque;publicclassDequeExample{publicstaticvoidmain(String[]args){ArrayDeque<String>deque=newArrayDeque<>();// 从两端添加元素deque.addFirst("First");deque.addLast("Last");// 从两端移除元素System.out.println("Remove first: "+deque.removeFi...
ArrayDeque<Integer>integers=newArrayDeque<>();integers.addLast(8);integers.addFirst(60); 然后当head == tail的时候表示数组用满了,需要扩容,就执行doubleCapacity扩容,这里的扩容和 ArrayList 的代码差不多,就不去分析了。 总结 凡是牵涉到需要使用 FIFO 或者 LIFO 的数据结构时,推荐使用 ArrayDeque,LinkedList...
import java.util.ArrayDeque; import java.util.Deque; public class DequeExample { public static void main(String[] args) { Deque<Integer> deque = new ArrayDeque<>(); // 在队首和队尾添加元素 deque.addFirst(1); deque.addLast(2);
// 使用 LinkedList 创建 Queue<String> animal1 = new LinkedList<>(); // 使用 ArrayDeque 创建 Queue<String> animal2 = new ArrayDeque<>(); // 使用 PriorityQueue创建 Queue<String> animal 3 = new PriorityQueue<>(); 在这里,我们分别创建了类LinkedList,ArrayDeque和PriorityQueue的对象Animal1,Animal2...