null表示一个空引用。list map set 他们都可以有null值,add()方法加入集合的只是对象的引用。
map可以有null的Key与null的Value,但如果有相同的key,后面的值会覆盖之前的值。而Set不能存放相同的值,如果放入的值在Set中已经存在,之前的值会被覆盖,list可以保存重复的值。
证明集合存的是引用
import java.util.*;
class Point
{
int x;
int y;
}
class Test
{
public static void main(String[] args)
{
Point p1 = new Point();
Point p2= p1;
Collection c= new ArrayList();
c.add(p1);
p1=null;
System.out.println(c.contains(p1)); //输出false p1=null了
System.out.println(c.contains(p2));// 输出true 执行过p2=p1;证明
}
}
|