我有这个脚本,但我无法增加
LinkedList<Card> deckOfCards = new LinkedList<Card>();
for (int count = 0; count < deckOfCards.size(); count++) {
deckOfCards[count].add(new Card(Rank.values()[count % 13].toString(),Suit.values()[count / 13].toString(), number[count % 13],Image[count % 52]));
}
我在deckOfCards [count]上收到错误,所以我怀疑我是如何做到这一点的 (表达式的类型必须是数组类型,但它已解析为LinkedList)
我以前的代码是一个数组,并且工作
deckOfCards = new Card[number_cards];
for (int count = 0; count < deckOfCards.length; count++) {
deckOfCards[count] = new Card(Rank.values()[count % 13].toString(),Suit.values()[count / 13].toString(), number[count % 13],Image[count % 52]);
}
}
//suppose to get na name, value of card, but the result is [null, null, null, etc]
public Card[] giveCardPlayer1() {
String name1 = Arrays.toString(deckOfCards);
nameF = name1;
String suit_1 = deckOfCards.toString();
suit1 = suit_1;
return deckOfCards;
}
public int totalValuePlayer1() {
return currentTotal1;
}
public String name1() {
return nameF;
}
public String suit_1() {
return suit1;
}
感谢!!!!
答案 0 :(得分:4)
只需致电deckOfCards.add(...)
。
您不能像对待数组一样索引Java List
。您必须使用其add()
方法。这会将指定的元素追加到列表的末尾。
还有another add()
method,它带有int index
个参数。但是,由于列表的大小不固定,您不能通过调用deckOfCards.add(count, new Card(...))
直接设置列表的n th 元素 - 您需要首先确保指定的元素存在于列表,否则你得到一个IndexOutOfBoundsException
。还值得一提的是,对于任何非平凡大小的列表,按索引访问链接列表是一个缓慢的操作(与例如ArrayList
s相比)。
啊,你需要修复你的循环不变量。当前版本
for (int count = 0; count < deckOfCards.size(); count++) { ...
永远不会执行循环体,因为列表的初始大小为0.将其更改为
for (int count = 0; count < number_cards; count++) { ...
答案 1 :(得分:0)
除了彼得的帖子;如果您需要像在此尝试一样对列表编制索引,则可以使用ArrayList代替。