Mit next() zum Aufruf der nächsten iteration der ArrayList

Wir haben hier ein bisschen Probleme mit dem iterator next(). Kann nicht scheinen, um es richtig zu arbeiten. Ich habe mit diesem code für eine Weile, also dachte ich mir einen anderen Satz von Augen helfen würde.

Dies ist mein deck Klasse erstellt eine Liste der Karten-Objekte, ich versuche eine Methode zu greifen, die nächste Karte in der Liste beginnend mit dem ersten:

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; 
}
}

Dies ist meine main-Klasse, wo rufe ich die getNextCard() und was ich mir denke, Sie tun sollten, ist drucken die erste und dann die nächste Karte in der Liste, aber was es tut, ist drucken die erste Karte zweimal.

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());
    }

}

Vielen Dank im Voraus für jede Hilfe!!!

Liebe deine subtil Endlosschleife, in getNextCard() !
sieht aus wie Sie ' re immer einen neuen iterator jedes mal

InformationsquelleAutor ivanthemeh | 2013-04-26

Schreibe einen Kommentar