直接赋值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直接赋值?达咩达咩! - 百度文库
欢迎关注工众耗:微程序学堂
|