下面的代码:这段代码为什么会抛出ArrayIndexOutOfBoundsException?
public class Deck {
private Card[] cards;
public Deck() {
cards = new Card[52];
String[] ranks = {"ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king"};
String[] suits = {"hearts","diamonds","clubs","spades"};
for(int i = 0; i < suits.length; i++) {
for(int n = 0; n < ranks.length; n++) {
cards[cards.length] = new Card(ranks[i],suits[n]);
}
}
}
}
正如你所看到的,这个循环虽然两个给定的阵列和对每个组合生成一个卡。有13名队伍×4套装= 52张牌。我预计,在第52次迭代,cards.length
是51,但是编译器说
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 52
at com.cards.Deck.<init>(Deck.java:14)
这是为什么?
或使用'ArrayList' –
Falmarri