为什么addLast()无法正常工作

chk*_*ddi 1 java collections deque

我创建了一个DeQueue作为follws

Deque<Integer> deque = new ArrayDeque<Integer>(8);

// use add() method to add elements in the deque
deque.add(20);
deque.add(30);
deque.addLast(12);
deque.add(18);        
deque.addFirst(22);
deque.add(24);

// let us print all the elements available in deque
for (Integer number : deque) {
    System.out.println("Number = " + number);
}
Run Code Online (Sandbox Code Playgroud)

预期的产出是:

Number = 22
Number = 20
Number = 30
Number = 18
Number = 24
Number = 12
Run Code Online (Sandbox Code Playgroud)

但实际输出是:

Number = 22
Number = 20
Number = 30
Number = 12
Number = 18
Number = 24
Run Code Online (Sandbox Code Playgroud)

有人请解释一下吗?

Jon*_*eet 5

addLast不会以某种方式永远保持"这应该是最后的"的概念 - 它只会增加当前出列的结尾.据记载add,这相当于.

因此,如果我们查看每个步骤的值,我们有:

deque.add(20);      // Contents: 20
deque.add(30);      // Contents: 20, 30
deque.addLast(12);  // Contents: 20, 30, 12
deque.add(18);      // Contents: 20, 30, 12, 18
deque.addFirst(22); // Contents: 22, 20, 30, 12, 18
deque.add(24);      // Contents: 22, 20, 30, 12, 18, 24
Run Code Online (Sandbox Code Playgroud)

......这与你得到的输出完全一致.