Utilisation de la fonction next() pour appeler l'itération suivante de la liste de tableaux

Avoir un peu de mal avec l'itérateur next(). Ne semble pas possible de l'obtenir pour fonctionner correctement. J'ai travaillé sur ce code pour un moment donc je pensais à une autre paire d'yeux peut aider.

C'est mon deck classe avec crée une liste des objets de la Carte, je suis en train de faire une méthode pour attraper la prochaine Carte dans la liste, en commençant par le premier:

package blackjack;

import blackjack.Card.Rank;
import blackjack.Card.Suit;
import java.util.*;

public class Deck {

public ArrayList<Card> cards = new ArrayList<>();
int i;
Card next;

public Deck() {
    initializeDeck();

}

public void printDeck() {
    for (Card c: cards)
        System.out.println(c);
}

private void initializeDeck() {
    for (Suit suit : Suit.values()) {
        for (Rank rank : Rank.values()) {
            cards.add(new Card(rank, suit));
        }
    }
}

public Card getNextCard() {
    if (cards.listIterator().hasNext() != true) {
        getNextCard();
    }
    else {
        next = cards.listIterator().next();
    }
      return next; 
}
}

C'est ma classe principale où j'appelle la getNextCard() et ce que je suis en train de penser qu'il doit faire est d'imprimer à la première, puis la prochaine Carte dans la liste, mais qu'il fait c'est de l'impression de la première Carte à deux reprises.

package blackjack;

import java.util.*;

public class BlackJack {

public static void main(String[] args) {
    Deck deck = new Deck();
    System.out.println(deck.getNextCard());
    System.out.println(deck.getNextCard());
    }

}

Merci d'avance pour toute aide!

L'amour de votre subtil boucle infinie dans getNextCard() !
on dirait que vous êtes l'obtention d'un nouvel itérateur à chaque fois

OriginalL'auteur ivanthemeh | 2013-04-26