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()+“”); } } }

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()+“”); } } },java,Java,你好。。我对ArrayDeque类中的peek()方法有一个问题。。该方法所要做的就是检索ArrayQue的头部,而不移除它。如果是这样的话,它是如何在不进行无限循环的情况下完美工作的。。我的意思是谁告诉该方法在每个完整循环之后查找下一个元素。不存在无限循环,因为当队列为空时,整个循环中的条件将为false import java.util.ArrayDeque; class Main { public static void main(String[] args) {

你好。。我对ArrayDeque类中的peek()方法有一个问题。。该方法所要做的就是检索ArrayQue的头部,而不移除它。如果是这样的话,它是如何在不进行无限循环的情况下完美工作的。。我的意思是谁告诉该方法在每个完整循环之后查找下一个元素。

不存在无限循环,因为当队列为空时,整个循环中的条件将为false

    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-yes
pop()
相当于
removeFirst()
。您是否阅读了Javadoc以了解
pop()
的实际功能?每当调用
pop()
时,您的
ArrayDeque
是否会更改?是的,谢谢亲爱的。。我现在明白了。。愚蠢的问题
 while (!arrayDeque.isEmpty()) { arrayDeque.pop(); }