Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JAVA中将列表放入数组_Java_Arrays_List - Fatal编程技术网

在JAVA中将列表放入数组

在JAVA中将列表放入数组,java,arrays,list,Java,Arrays,List,我对Java有一个问题: 我有一个整数列表,我想把它放入数组的特定列和行中。例如,在第1栏中,我想把[1,2,3]和第2栏[8]放进去 我试过一些东西: 我想将列表放入数组,然后清除列表以放入新值并放入数组的另一个位置,等等 我创建了列表和我的列表(元素)的数组(范围) 然后,我清除列表以放置新值 elements.clear(); 但是当我清除列表时,这也会将列表清除到我的数组中 我怎么做 谢谢大家! 当您执行时,范围[???]=元素您仅将引用分配给数组元素到范围[?],您不能复制新数组中

我对Java有一个问题: 我有一个整数列表,我想把它放入数组的特定列和行中。例如,在第1栏中,我想把[1,2,3]和第2栏[8]放进去

我试过一些东西: 我想将列表放入数组,然后清除列表以放入新值并放入数组的另一个位置,等等

  • 我创建了列表和我的列表(元素)的数组(范围)

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

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

    我怎么做


    谢谢大家!

    当您执行
    时,范围[???]=元素
    您仅将引用分配给数组
    元素
    范围[?]
    ,您不能复制新数组中的所有值


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

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

    替换

    elements.clear();
    

    elements=新的数组列表(nbSommets);
    
    为什么
    elements.clear()
    清除原始
    ArrayList
    对象 因为
    元素
    仍然指向原始的
    数组列表
    对象,无论您是将其添加到数组、其他集合还是对象

    为什么
    elements=newarraylist(nbSommets)
    会起作用? 因为它将断开对原始
    ArrayList
    对象的引用,并将
    元素
    指向一个新的
    ArrayList

    ,所以您有一个(原始、原因通用数组)列表数组。它们只是参考资料。这里有两个层次的奇怪现象。。。
    elements.clear();
    
    elements.clear();
    
    elements = new ArrayList<>(nbSommets);