繁体   English   中英

将列表放入 JAVA 中的数组中

[英]Put a list into an array in JAVA

我对 Java 有疑问:我有一个 integer 列表,我想将其放入数组的特定列和行中。 例如,在第 1 列我想放 [1,2,3] 和第 2 列 [8]...

我尝试了一些事情:我想将列表放入数组中,然后清除列表以放入新值并放入我的数组的另一个位置等......

  • 我创建了一个列表数组(RANG)和我的列表(ELEMENTS)

     List[] rang=new List[nbSommets]; List<Integer> elements= new ArrayList<>(nbSommets);

我添加了一些数字,然后将所有列表放入数组中

rang[???]=elements;

然后,我清除列表以放置新值

elements.clear();

但是当我清除列表时,这也会将列表清除到我的数组中......

我该怎么做?

谢谢你 !

当你做rang[???] = elements; 您只是将数组elements引用分配给rang[???] ,而不是复制新数组中的所有值。

您需要做的是,每次都创建一个新数组( new ArrayList<>() ),而不是清除元素数组。

问题是如果你创建一个List elements = new ArrayList() ,你就会创建一个新的 object。 如果您通过rang[???] = elements将列表放入数组中,现在您的数组包含对您创建的列表的引用。 因此,您的elements变量指向与rang[???]相同的 object 。 您可以通过rang[???] = new ArrayList(elements)将其放入数组中,您将获得一个新的列表,当您清除元素时,数组中的列表将保持不变。

代替

elements.clear();

elements = new ArrayList<>(nbSommets);

为什么elements.clear()会清除原来的ArrayList object

因为elements仍然指向原始的ArrayList object,无论您将其添加到数组、其他集合还是 object。

为什么elements = new ArrayList<>(nbSommets)会起作用?

因为它将断开对原始ArrayList object 的引用并将elements指向新的ArrayList

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM