IT干货网

java之将数组列表项移至链表

exmyth 2024年09月07日 编程设计 36 0

我在将 ArrayList 项目添加到链接列表时遇到问题。起初它工作得很好,但由于某种原因,现在不想采取行动,我将信息传输到我的计算机上。

基本上,发生的情况是,不是将数组列表中的 2 个项目移动到链接列表,而是移动了 4 个项目(这两个项目复制自身)。

这是我的代码:

for(Customer obj : customers){ 
 
        remaining.addAll(obj.getIndex(), customers); 
        System.out.println(remaining); 
        //System.out.println(obj.getIndex() + " Customer: " + obj.getType()); 
    } 

我的输出: [慢速客户0,慢速客户1] [慢客户0,慢客户0,慢客户1,慢客户1]

我明白为什么我会得到两个列表,但我对你们所有人的主要问题是为什么我会得到第二个输出。

*****免责声明:当我将剩余的打印在外面时,我只得到了第二个列表。********

请您参考如下方法:

我认为您误解了方法addAll(int index, Collection collection) 该方法的作用:它获取所使用的集合中的每个元素,并将这些元素添加到调用该方法的列表中。它们将被添加到指定的索引处,并且所有后续元素将被移动。(有关更多信息,请参阅 java 文档 https://docs.oracle.com/javase/7/docs/api/java/util/List.html#addAll(int,%20java.util.Collection )
然而,您调用它的次数如此之多,因此添加了如此多的对象,因为您将其放入循环中;)

仅使用 remaining.addAll(customers); 一次并放弃循环。

(或者保留循环并在每个对象上使用 add(obj); )

编辑:更正了 addAll 方法的解释


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!