Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 LinkedList清除方法_Java_Linked List - Fatal编程技术网

Java LinkedList清除方法

Java LinkedList清除方法,java,linked-list,Java,Linked List,假设我有这部分代码。我有输出。 所有值:[[0,1,2,3,4,5,6,7,8,9,10],]。 当我将listOfValues2清除()时。我希望只清除该列表,而不影响allValues列表中的值。我怎样才能做到? 我需要这个,因为稍后我将使用另一个数据集生成另一个Values2列表,并将其作为第三个列表放入allValues中 LinkedList<Integer> listOfValues1 = new LinkedList<Integer>();

假设我有这部分代码。我有输出。 所有值:[[0,1,2,3,4,5,6,7,8,9,10],]。 当我将listOfValues2清除()时。我希望只清除该列表,而不影响allValues列表中的值。我怎样才能做到? 我需要这个,因为稍后我将使用另一个数据集生成另一个Values2列表,并将其作为第三个列表放入allValues中

     LinkedList<Integer> listOfValues1 = new LinkedList<Integer>();
     LinkedList<Integer> listOfValues2 = new LinkedList<Integer>();
     LinkedList<LinkedList<Integer>> allValues= 
     new LinkedList<LinkedList<Integer>>();

     for(int w=0; w<=10; w++) {
        listOfValues1.add(w);
     }

     for(int b=5; b<=15; b++) {
        listOfValues2.add(b);
     }

     allValues.add(listOfValues1);
     allValues.add(listOfValues2);
     listOfValues2.clear();
     System.out.println("allValues: " + allValues);
LinkedList listOfValues1=新建LinkedList();
LinkedList listOfValues2=新建LinkedList();
LinkedList所有值=
新建LinkedList();
对于(int w=0;w
我需要这个,因为稍后我将使用另一个数据集生成另一个Values2列表,并将其作为第三个列表放入AllValues中

然后不要清除
listOfValues2
。稍后创建新的
LinkedList
,并将其分配给
listOfValues2
变量。对原始
listOfValues2
所做的任何更改也将发生在
allValues
中,因为
listOfValues2
allValues
的第二个元素对对象列表的引用相同

我需要这个,因为稍后我将使用另一个数据集生成另一个Values2列表,并将其作为第三个列表放入AllValues中


然后不要清除
listOfValues2
。稍后创建新的
LinkedList
,并将其分配给
listOfValues2
变量。对原始
listOfValues2
所做的任何更改也将发生在
allValues
中,因为
listOfValues2
allValues
的第二个元素您对对象列表的引用是相同的。

集合类不是不可变的,因此不支持共享。因此,您无法按尝试的方式进行共享。如果您需要空列表,只需说:

listOfValues2 = new LinkedList<Integer>();
listOfValues2=newlinkedlist();

集合类不是不可变的,因此不支持共享。因此,您无法按尝试的方式进行共享。如果需要空列表,只需说:

listOfValues2 = new LinkedList<Integer>();
listOfValues2=newlinkedlist();

在这种情况下,您需要这样做

AllValues.add(new LinkedList<Integer>(listOfValues2)); // this will create a new list with all the values of listOfValues2
AllValues.add(新建LinkedList(listOfValues2));//这将创建一个包含listOfValues2所有值的新列表

因为,如果您只添加
值列表2
,对其所做的任何更改也将反映在
所有值中。

在这种情况下,您需要这样做

AllValues.add(new LinkedList<Integer>(listOfValues2)); // this will create a new list with all the values of listOfValues2
AllValues.add(新建LinkedList(listOfValues2));//这将创建一个包含listOfValues2所有值的新列表

因为,如果您只添加
listOfValues2
,对它所做的任何更改也将反映在
AllValues
中。

复制listOfValues2。将其添加到AllValues而不是listOfValues2。

复制listOfValues2。将其添加到AllValues而不是listOfValues2。

然后您应该g> 将listOfValues2的复制到所有值中,或将另一个数据生成到第三个单独的列表中。

然后您应该将listOfValues2的复制到所有值中,或将另一个数据生成到第三个单独的列表中。

您只需使用
克隆()
您的
链接列表的方法
,这样您将只在
所有值
中添加一个
值列表2
的克隆

public class Main {

    public static void main(String[] args) {

        LinkedList<Integer> listOfValues1 = new LinkedList<Integer>();
        LinkedList<Integer> listOfValues2 = new LinkedList<Integer>();
        LinkedList<LinkedList<Integer>> AllValues = new LinkedList<LinkedList<Integer>>();

        for (int w = 0; w <= 10; w++) {
            listOfValues1.add(w);  
        }

        for (int b = 5; b <= 15; b++) {
            listOfValues2.add(b);  
        }

        AllValues.add(listOfValues1);

        // adding a cloned Linkedlist        
        AllValues.add((LinkedList<Integer> ) listOfValues2.clone());
        System.out.println("AllValues: " + AllValues);
        listOfValues2.clear();
        System.out.println("AllValues: " + AllValues);  
    }
}
公共类主{
公共静态void main(字符串[]args){
LinkedList listOfValues1=新建LinkedList();
LinkedList listOfValues2=新建LinkedList();
LinkedList AllValues=新建LinkedList();

对于(int w=0;w您只需使用
LinkedList
clone()
方法,这样您只需将
listOfValues2
的克隆添加到
AllValues

public class Main {

    public static void main(String[] args) {

        LinkedList<Integer> listOfValues1 = new LinkedList<Integer>();
        LinkedList<Integer> listOfValues2 = new LinkedList<Integer>();
        LinkedList<LinkedList<Integer>> AllValues = new LinkedList<LinkedList<Integer>>();

        for (int w = 0; w <= 10; w++) {
            listOfValues1.add(w);  
        }

        for (int b = 5; b <= 15; b++) {
            listOfValues2.add(b);  
        }

        AllValues.add(listOfValues1);

        // adding a cloned Linkedlist        
        AllValues.add((LinkedList<Integer> ) listOfValues2.clone());
        System.out.println("AllValues: " + AllValues);
        listOfValues2.clear();
        System.out.println("AllValues: " + AllValues);  
    }
}
公共类主{
公共静态void main(字符串[]args){
LinkedList listOfValues1=新建LinkedList();
LinkedList listOfValues2=新建LinkedList();
LinkedList AllValues=新建LinkedList();

对于(intw=0;w我认为linkedlist总是引用内存而不是值。 因此,如果清除列表2,则该特定内存没有值。
同样,allValue列表引用相同的内存位置,不存在任何值。因此列表2打印为空。

我认为linkedlist总是引用内存而不是值。 因此,如果清除列表2,则该特定内存没有值。 同样,allValue列表引用相同的内存位置,不存在任何值。因此它为list2打印空