工作中,遇到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,未完待续...