在JAVA中将列表放入数组
我对Java有一个问题: 我有一个整数列表,我想把它放入数组的特定列和行中。例如,在第1栏中,我想把[1,2,3]和第2栏[8]放进去 我试过一些东西: 我想将列表放入数组,然后清除列表以放入新值并放入数组的另一个位置,等等在JAVA中将列表放入数组,java,arrays,list,Java,Arrays,List,我对Java有一个问题: 我有一个整数列表,我想把它放入数组的特定列和行中。例如,在第1栏中,我想把[1,2,3]和第2栏[8]放进去 我试过一些东西: 我想将列表放入数组,然后清除列表以放入新值并放入数组的另一个位置,等等 我创建了列表和我的列表(元素)的数组(范围) 然后,我清除列表以放置新值 elements.clear(); 但是当我清除列表时,这也会将列表清除到我的数组中 我怎么做 谢谢大家! 当您执行时,范围[???]=元素您仅将引用分配给数组元素到范围[?],您不能复制新数组中
- 我创建了列表和我的列表(元素)的数组(范围)
然后,我清除列表以放置新值
但是当我清除列表时,这也会将列表清除到我的数组中 我怎么做elements.clear();
谢谢大家! 当您执行
您仅将引用分配给数组时,范围[???]=元素
到元素
,您不能复制新数组中的所有值范围[?]
您需要做的是,每次都创建一个新数组(
),而不是清除元素数组。问题是,如果您创建一个new ArrayList()
,您就创建了一个新对象。如果通过List elements=new ArrayList()
将列表放入数组中,那么现在数组包含对已创建列表的引用。因此,您的rang[???]=elements
变量指向与元素
相同的对象。您可以通过范围[?]
将其放入数组,您将得到一个新列表,当您清除elements时,数组中的列表将保持不变。替换rang[???]=new ArrayList(elements)
与elements.clear();
为什么elements=新的数组列表(nbSommets);
清除原始elements.clear()
对象 因为ArrayList
仍然指向原始的元素
对象,无论您是将其添加到数组、其他集合还是对象 为什么数组列表
会起作用? 因为它将断开对原始elements=newarraylist(nbSommets)
对象的引用,并将ArrayList
指向一个新的元素
,所以您有一个(原始、原因通用数组)列表数组。它们只是参考资料。这里有两个层次的奇怪现象。。。ArrayList
elements.clear();
elements.clear();
elements = new ArrayList<>(nbSommets);