【发布时间】:2016-05-17 16:45:00
【问题描述】:
我已经创建了 52 张卡片以添加到我的 ArrayList 中,唯一的问题是当我尝试获取列表中的第一项时,我可能会出现 outofboundserror,因为我认为我的 ArrayList 中没有添加任何内容。
private ArrayList<Card> deck;
public Deck() {
deck = new ArrayList<Card>();
for(int i = 1; i < 14; i++) {
if(i == 1){
Card c = new Card("Ace", "Hearts");
}
else if(i < 11 && i > 1) {
Card c = new Card("" + i, "Hearts");
}
else if(i == 11) {
Card c = new Card("Jack", "Hearts");
}
else if(i == 11) {
Card c = new Card("Queen", "Hearts");
}
else if(i == 11) {
Card c = new Card("King", "Hearts");
}
}
for(int i = 1; i < 14; i++) {
if(i == 1) {
Card c = new Card("Ace", "Clubs");
}
else if(i < 11 && i > 1) {
Card c = new Card("" + i, "Hearts");
}
else if(i == 11) {
Card c = new Card("Jack", "Clubs");
}
else if(i == 11) {
Card c = new Card("Queen", "Clubs");
}
else if(i == 11) {
Card c = new Card("King", "Clubs");
}
}
for(int i = 14; i < 1; i--) {
if(i == 11) {
Card c = new Card("King", "Diamonds");
}
else if(i == 11) {
Card c = new Card("Queen", "Diamonds");
}
else if(i == 11) {
Card c = new Card("Jack", "Diamonds");
}
else if(i < 11 && i > 1) {
Card c = new Card("" + i, "Diamonds");
}
else if(i == 1) {
Card c = new Card("Ace", "Diamonds");
}
}
for(int i = 14; i < 1; i--) {
if(i == 11) {
Card c = new Card("King", "Spades");
}
else if(i == 11) {
Card c = new Card("Queen", "Spades");
}
else if(i == 11) {
Card c = new Card("Jack", "Spades");
}
else if(i < 11 && i > 1) {
Card c = new Card("" + i, "Spades");
}
else if(i == 1) {
Card c = new Card("Ace", "Spades");
}
}
}
如何将它添加到我的 ArrayList 中?
【问题讨论】:
-
else if(i == 11)重复 3 次。你真的应该注意你提供的代码。 -
而且,您实际上从未向
deck添加Card。