java中的arrayDeque.peek()方法如何处理while循环 import java.util.ArrayDeque; 班长{ 公共静态void main(字符串[]args){ ArrayDeque ArrayDeque=新的ArrayDeque(); arrayDeque.push(10); arrayDeque.push(11); arrayDeque.push(15); arrayDeque.push(20); arrayDeque.push(200); arrayDeque.add(700); while(arrayDeque.peek()!=null){ System.out.println(arrayDeque.pop()+“”); } } }
你好。。我对ArrayDeque类中的peek()方法有一个问题。。该方法所要做的就是检索ArrayQue的头部,而不移除它。如果是这样的话,它是如何在不进行无限循环的情况下完美工作的。。我的意思是谁告诉该方法在每个完整循环之后查找下一个元素。不存在无限循环,因为当队列为空时,整个循环中的条件将为falsejava中的arrayDeque.peek()方法如何处理while循环 import java.util.ArrayDeque; 班长{ 公共静态void main(字符串[]args){ ArrayDeque ArrayDeque=新的ArrayDeque(); arrayDeque.push(10); arrayDeque.push(11); arrayDeque.push(15); arrayDeque.push(20); arrayDeque.push(200); arrayDeque.add(700); while(arrayDeque.peek()!=null){ System.out.println(arrayDeque.pop()+“”); } } },java,Java,你好。。我对ArrayDeque类中的peek()方法有一个问题。。该方法所要做的就是检索ArrayQue的头部,而不移除它。如果是这样的话,它是如何在不进行无限循环的情况下完美工作的。。我的意思是谁告诉该方法在每个完整循环之后查找下一个元素。不存在无限循环,因为当队列为空时,整个循环中的条件将为false import java.util.ArrayDeque; class Main { public static void main(String[] args) {
import java.util.ArrayDeque;
class Main {
public static void main(String[] args) {
ArrayDeque<Integer> arrayDeque = new ArrayDeque<>();
arrayDeque.push(10);
arrayDeque.push(11);
arrayDeque.push(15);
arrayDeque.push(20);
arrayDeque.push(200);
arrayDeque.add(700);
while (arrayDeque.peek() != null) {
System.out.println(arrayDeque.pop() + " ");
}
}
}
当
pop
删除最后一个元素时,arrayDeque.peek()
将返回null,这就是结束。这可能就是为什么我更喜欢检查isEmpty()
。
这使得您更容易理解您需要将元素从队列中弹出,否则它将永远不会进入emtpy
while (arrayDeque.peek() != null)
pop()
做什么?当循环为ArrayDeque
对象调用pop()
方法时,您的。查看:为了更好地理解这到底在做什么。public E removeFirst(){E x=pollFirst();if(x==null)抛出新的NoSuchElementException();return x;}@WaseemSwaileh-yespop()
相当于removeFirst()
。您是否阅读了Javadoc以了解pop()
的实际功能?每当调用pop()
时,您的ArrayDeque
是否会更改?是的,谢谢亲爱的。。我现在明白了。。愚蠢的问题
while (!arrayDeque.isEmpty()) { arrayDeque.pop(); }