直接賦值B=A,這是賦值了引用 ,如下面的例子
//'main' method must be in a class 'Rextester'.
//Compiler version 1.8.0_111
import java.util.*;
import java.lang.*;
import java.util.ArrayList;
import java.util.Arrays;
class Rextester
{
public static void main(String args[])
{
System.out.println("Hello, World!");
ArrayList<String> A = new ArrayList<String>();
A.add("1");
A.add("2");
System.out.println(A);
ArrayList<String> B;
B=A;
System.out.println(B);
A.clear();
System.out.println(B);
}
}
正確的方式為使用B.addAll(A)
//'main' method must be in a class 'Rextester'.
//Compiler version 1.8.0_111
import java.util.*;
import java.lang.*;
import java.util.ArrayList;
import java.util.Arrays;
class Rextester
{
public static void main(String args[])
{
System.out.println("Hello, World!");
ArrayList<String> A = new ArrayList<String>();
A.add("1");
A.add("2");
System.out.println(A);
ArrayList<String> B = new ArrayList<String>();
B.addAll(A);
System.out.println(B);
A.clear();
System.out.println(B);
}
}
?參考??Java兩個list直接賦值?達咩達咩! - 百度文庫??
歡迎關注工眾耗:微程序學堂
本文摘自 :https://blog.51cto.com/s