Czy w Iteratorze java.util.Stack jest błąd?

Dzisiaj próbowałem się wcisnąćjava.util.Stack klasa, a następnie użyjIterator iterować (bez użycia popu) przez elementy. Spodziewałem się nieruchomości LIFO, ale byłem zaskoczony.

Oto kod, który próbowałem.

import java.util.*;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        RobStack<Integer> rstack = new RobStack<Integer>(); // Correct Implementation
        Stack<Integer> jstack = new Stack<Integer>(); // Default Java Implementation
        rstack.push(0); jstack.push(0);
        rstack.push(1); jstack.push(1);
        rstack.push(2); jstack.push(2);
        rstack.push(3); jstack.push(3);

        System.out.print("Algo Stack: ");
        for (int i : rstack)
            System.out.print(i + " ");
        System.out.print("\nJava Stack: ");
        for (int i : jstack)
            System.out.print(i + " ");
    }

}

Dane wyjściowe powyższego programu podano poniżej:

Algo Stack: 3 2 1 0 
Java Stack: 0 1 2 3 

W powyższym kodziejstack używa domyślnej implementacji Java irstack używawdrożenie dostarczone przez Roberta Sedgewicka dla jego klasy Algorytm. Odkryłem, że wdrożenie prof. Roberta działa dobrze, alejava.util.Stack wdrożenie nie powiedzie się.

To jestpluskwa czy to przezprojekt?

questionAnswers(6)

yourAnswerToTheQuestion