【发布时间】:2015-02-17 07:38:59
【问题描述】:
我有问题。
public class Deck {
//deck contents returns every card in the deck
String[] suits = {"Clubs", "Hearts", "Diamonds", "Spades"};
String[] ranks = {"Deuce", "Three", "Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace"};
int[] values = {2,3,4,5,6,7,8,9,10,10,10,10,11};
ArrayList<Card> deck = new ArrayList<Card>();
ArrayList<Card> cardsDealt = new ArrayList<Card>(); //unused here
Random rand = new Random(); //unused here
public Deck(){
for(int i = 0; i < suits.length; i++){
for(int k = 0; i < ranks.length; k++){
deck.add(new Card(suits[i], ranks[k], values[k]));
}
}
}
我收到 IndexOutOfBoundsException 错误。我的任务是创建一个 Deck 对象,然后将 52 个 Card Objects 添加到一个名为 deck 的 ArrayList 中。我编写了 for 循环来创建卡片组中可能的 52 张卡片中的每一张。错误是什么?
【问题讨论】:
-
i < ranks.length不是您想要的循环绑定。 -
我会用什么代替?
-
仔细查看循环。查看它正在初始化和递增的变量,然后查看您正在检查的变量。
-
另外我忘了提一下,Card 对象的参数列表是 String 花色、String rank 和 int 值。
-
在这里并不重要。再看看你的第二个循环!
标签: java arraylist indexoutofboundsexception