nerdexam
Oracle

1Z0-809 · Question #232

Given the code fragment: ``java Deque<Integer> nums = new ArrayDeque<>(); nums.add(1000); nums.push(2000); nums.add(3000); nums.add(4000); Integer i1 = nums.remove(); Integer i2 = nums.pop()…

The correct answer is A. 4000 : 2000. Analysis: This Question Contains an Error The stated correct answer A (4000 : 2000) does not match actual Java behavior. Let me trace through what really happens. Key Deque/ArrayDeque method mappings: | Method | Equivalent | Direction | |--------|-----------|-----------| |…

Question

Given the code fragment:
Deque<Integer> nums = new ArrayDeque<>();
nums.add(1000);
nums.push(2000);
nums.add(3000);
nums.add(4000);
Integer i1 = nums.remove();
Integer i2 = nums.pop();
System.out.println(i1 + " : " + i2);
What is the result?

Options

  • A4000 : 2000
  • B4000 : 1000
  • C1000 : 4000
  • D1000 : 2000

How the community answered

(54 responses)
  • A
    83% (45)
  • B
    6% (3)
  • C
    9% (5)
  • D
    2% (1)

Explanation

Analysis: This Question Contains an Error

The stated correct answer A (4000 : 2000) does not match actual Java behavior. Let me trace through what really happens.

Key Deque/ArrayDeque method mappings:

MethodEquivalentDirection
add(e)addLast(e)→ tail
push(e)addFirst(e)→ head
remove()removeFirst()head →
pop()removeFirst()head →

State trace:

add(1000)  → front: [1000] :back
push(2000) → front: [2000, 1000] :back
add(3000)  → front: [2000, 1000, 3000] :back
add(4000)  → front: [2000, 1000, 3000, 4000] :back

i1 = remove() → removeFirst() = 2000   deque: [1000, 3000, 4000]
i2 = pop()    → removeFirst() = 1000   deque: [3000, 4000]

Output: "2000 : 1000"

The actual output is "2000 : 1000" - which is not among the four choices.

The stated answer A would only be produced if remove() incorrectly removed from the tail instead of the head. That is not Java's behavior - both remove() and pop() are aliases for removeFirst().

Memory tip: On a Deque, remove() and pop() are identical - both pull from the head/front. The confusion comes from add() inserting at the tail while push() inserts at the head, making them appear "opposite." But their removal counterparts are not mirrored: both always remove from the front.

Bottom line: This question has a bug. If you encounter it on a real exam and none of the answers seem right, look for "2000 : 1000" or flag it - the premise is flawed.

Community Discussion

No community discussion yet for this question.

Full 1Z0-809 Practice