迭代器 next() 有点麻烦。似乎无法让它正常工作。我已经在这段代码上工作了一段时间,所以我认为另一双眼睛会有所帮助。
这是我的甲板类,它创建了一个 Card 对象列表,我正在尝试创建一种方法来获取列表中的下一张 Card,从第一个开始:
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;
}
}
这是我调用 getNextCard() 的主要课程,我认为它应该做的是打印列表中的第一张卡片,然后打印下一张卡片,但它正在做的是打印第一张卡片两次。
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());
}
}
提前感谢您的帮助!