gpt4 book ai didi

java - 链表的ArrayList引用链表

转载 作者:行者123 更新时间:2023-12-01 17:18:54 25 4
gpt4 key购买 nike

我通过以下方式创建了 LinkedList 的数组列表:

ArrayList<LinkedList<Card>> list = new ArrayList<>(5);

然后我需要将链表添加到 arrayList,所以我这样做了,这似乎不起作用,因为 ArrayList 仍然为空

for (position = 0; position < list.size(); position++) {
list.add(new LinkedList<Card>());
}

然后我通过提供 LinkedLists 引用手动将 linkedLists 添加到 arrayList:

        LinkedList<Card> temp_list0 = new LinkedList<Card>();
LinkedList<Card> temp_list1 = new LinkedList<Card>();
LinkedList<Card> temp_list2 = new LinkedList<Card>();
LinkedList<Card> temp_list3 = new LinkedList<Card>();
LinkedList<Card> temp_list4 = new LinkedList<Card>();
list.add(temp_list0);
list.add(temp_list1);
list.add(temp_list2);
list.add(temp_list3);
list.add(temp_list4);

最后,虽然每次迭代,我都需要取出一个 LinkedList 来添加一些内容,然后将其放回数组列表中的位置,但通过这样做,我丢失了对 LinkedList 的引用,因此信息是丢失了

for (position = 0; position < deck.length; position++) {
scan = (deck[position]).getValue();
temp_list = list.get(scan);
temp_list.offer(deck[position]);
list.add(scan, temp_list);
}

有没有更好的方法可以访问arraylist中的LinkedList而不丢失信息,因为我的方法行不通。

最佳答案

问题出在你的开头 for环形; size()返回列表中元素的数量,而不是分配的容量(如果列表实现甚至有一个)。拿出你的5进入一个常量并从0循环改为常数。然后只需使用 get()/set()关于ArrayList通常情况下。

请注意,您不必“拉出”并“放回”包含的 LinkedList物体;您可以调用arrayList.get(linkedListNumber).offer(card); .

关于java - 链表的ArrayList引用链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20150170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com