gpt4 book ai didi

java - 在java中将List添加到List>集合中

转载 作者:行者123 更新时间:2023-12-02 03:47:15 25 4
gpt4 key购买 nike

List<List<Integer>> list = new LinkedList<List<Integer>>();
List<Integer> tmp = new LinkedList<Integer>();
tmp.add(2);
list.add(tmp);
tmp.add(3);
list.add(tmp);

列表结果为[[2,3],[2,3]];我只是困惑为什么它不是 [[2],[2,3]] 。当我使用list.add(new LinkedList<Integer>(tmp))时它会起作用的。我打印tmp,它仍然是[2], [2,3] ,它没有改变。为什么会这样?预先感谢您。

最佳答案

您向list添加了对tmp的引用。当您添加它时,tmp 仅包含 [2,3]。添加到 list 后,您将 3 添加到 tmp 的同一引用中。这导致两个“副本”都有 [2,3]。

一种方法可能是创建一个新列表并执行以下操作

tmp = new LinkedList<Integer>();
tmp.add(3);
list.add(tmp);

现在,列表将类似于 [[2],[3]]。

如果您希望列表为 [[2],[2,3]]...

List<List<Integer>> list = new LinkedList<List<Integer>>();
List<Integer> tmp = new LinkedList<Integer>();
tmp.add(2);

// add a copy of this linkedlist to the "BIG" list
list.add(new LinkedList<Integer>(tmp));
tmp.add(3);
list.add(tmp);

如果有不清楚的地方请告诉我。

关于java - 在java中将List添加到List<List<>>集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36191893/

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