Is there a bug in java.util.Stack's Iterator?
See Bug ID 4475301 : RFE: java.util.Stack.iterator() iterates the wrong way. This behavior is by (bad) design. Java's built-in Stack
iterator methods are inherited from other classes, so they don't behave as you'd expect.
You should use Deque instead of Stack.
Deque<Integer> stack = new ArrayDeque<Integer>();
See Oracle Doc
Well by principle, you should not iterate over a Stack
, but only push on top or pop from top. As for actual implementation, most languages, including Java, use another collection type
to implement a Stack
. From strict requirements point of view, it should allow constant time push, top and pop
operation.
Any additional features (or bug in this case), should just be ignored and not relied upon for coding.