[英]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.