我有这个脚本,但我无法增加
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;
}
谢谢!!!
最佳答案
只需调用 deckOfCards.add(...)
.
您无法索引 Java List
和数组一样。你必须使用它的 add()
方法代替。这会将指定的元素附加到列表的末尾。
还有another add()
method这需要 int index
范围。但是,由于列表的大小不固定,因此不能直接通过调用 deckOfCards.add(count, new Card(...))
来设置列表的第 n 元素。 - 你需要首先确保指定的元素存在于列表中,否则你会得到 IndexOutOfBoundsException
。还值得一提的是,对于任何大小不小的列表,通过索引访问链表都是一个缓慢的操作(与 ArrayList
相比)。
更新
啊,你还需要修复你的循环不变式。当前版本
for (int count = 0; count < deckOfCards.size(); count++) { ...
永远不会执行循环体,因为列表的初始大小为 0。将其更改为
for (int count = 0; count < number_cards; count++) { ...
关于java - 使用循环 for 将内容添加到 linkedList java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877392/