關於list集合存儲null的問題


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM