List:允许重复元素,可以加入任意多个null。
Set:不允许重复元素,最多可以加入一个null。
Map:Map的key最多可以加入一个null,value字段没有限制。作者: 魏群 时间: 2012-3-17 23:25
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;证明
}
} 作者: 丁佼 时间: 2012-3-18 00:50
一句话解答就是:null不是一种数据类型,也不是一个对象,而是一个存在于ASCII码表的值,一个特殊的值。
就像void表示一种特殊的函数返回值类型一样(标记着函数无返回值),
null是一个特殊的值,表示空引用,专门用于为一个还没有指向对象的引用赋值,
比如String Str = “abc”;String Str2 =null;
Str是有具体的被引用对象的~~“abc”,而Str2还没有引用任何一个对象~~也就是空引用,但是它不能没有值,于是产生了特殊值null 供其使用,表示它是空的状态。