java list初始值null_关于list集合存储null的问题

工作中,遇到list集合存储null的问题,不确定list能否存储null值。于是写一些demo测试list,set,table,及map存储null的问题。

1.list之arraylist

1 public static voidmain(String[] args) {2 String string= null;3 List list= new ArrayList();4 System.out.println("size:"+list.size());5 list.add(string);6 System.out.println("size:"+ list.size()+ ",list(i):"+list.get(0));7 }

run:

size:0

size:1,list(i):null

总结:arraylist集合是能存储null的。

2.list之linkedlist

1 public static voidmain(String[] args) {2 List list= new LinkedList();3 System.out.println("list.size():"+list.size());4 String string= null;5 list.add(string);6 System.out.println("list.size():"+list.size()+", list.get(0):"+list.get(0));7 }

run:

list.size():0

list.size():1, list.get(0):null

结论:linkedlist能存储null

3.set之hashset:

1 public static voidmain(String[] args) {2 //TODO Auto-generated method stub

3 Set set= new HashSet();4 System.out.println("set.size():"+set.size());5 String string= null;6 String string2= null;7 set.add(string);8 for (Iterator it=set.iterator() ; it.hasNext();) {9 string2 =it.next();10 }11 System.out.println("set.size():"+set.size()+", set.iterator.next():"+string2);12 }

run:

set.size():0

set.size():1,  set.iterator.next():null

结论:hashset能存储null

4.set之treeset (1):

1 public static voidmain(String[] args) {2 Set set= new TreeSet();3 System.out.println("set.size():"+set.size());4 String string= null;5 String string2= null;6 set.add(string);7 for (Iterator it=set.iterator() ; it.hasNext();) {8 string2 =it.next();9 }10 System.out.println("set.size():"+set.size()+", set.iterator.next():"+string2);11 }

run:

set.size():0

Exception in thread "main" java.lang.NullPointerException

at java.util.TreeMap.compare(TreeMap.java:1188)

at java.util.TreeMap.put(TreeMap.java:531)

at java.util.TreeSet.add(TreeSet.java:255)

at com.westward.Demo3.main(Demo3.java:15)

4.set之treeset (2):

public static voidmain(String[] args) {

Set set= new TreeSet();

System.out.println("set.size():"+set.size());

String string= "1";

String string2= null;

set.add(string);for (Iterator it=set.iterator() ; it.hasNext();) {

string2=it.next();

}

System.out.println("set.size():"+set.size()+", set.iterator.next():"+string2);

}

run:

set.size():0

set.size():1,  set.iterator.next():1

结论:treeset不能存储null

还有map,及table,未完待续...

你可能感兴趣的:(java,list初始值null)