java - 使用循环 for 将内容添加到 linkedList java

标签 java arrays list

我有这个脚本,但我无法增加

    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/

相关文章:

java - jsp中如何让div垂直居中对齐

c# - 将托管数组复制到非托管固定大小数组或从非托管固定大小数组复制

计算字符的出现次数并将其打印出来

r - 清理 R 中的列表列表

c# - 按引用对列表进行排序 C#

java - 正则表达式从 SQL 语句中检索列和表

Java反射/泛型

java - 创建具有交替行颜色的 JTable

javascript - 为什么在使用angularjs的promise时无法将数据插入数组?

java - 根据条件从 List<Object> 中删除重复项