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

1.list之arraylist

1 public static void main(String[] args) {
2        String string= null;
3        List list= new ArrayList<String>();
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 void main(String[] args) {
2       List list= new LinkedList<String>();
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 void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         Set set= new HashSet<String>();
 4         System.out.println("set.size():"+set.size());
 5         String string= null;
 6         String string2= null;
 7         set.add(string);
 8         for (Iterator<String> 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 void main(String[] args) {
 2            Set set= new TreeSet<String>();
 3            System.out.println("set.size():"+set.size());
 4            String string= null;
 5            String string2= null;
 6            set.add(string);
 7            for (Iterator<String> 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 void main(String[] args) {
           Set set= new TreeSet<String>();
           System.out.println("set.size():"+set.size());
           String string= "1";
           String string2= null;
           set.add(string);
           for (Iterator<String> 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,未完待续...

 

posted on 2016-01-26 20:00  WesTward  阅读(10505)  评论(0编辑  收藏  举报