zoukankan      html  css  js  c++  java
  • 关于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,未完待续...

  • 相关阅读:
    webpack学习1-打包
    Cordova开发-2 自定义插件
    Vue项目开发1-项目的创建
    Cordova开发-2 具体插件的使用
    Cordova开发-1 项目的创建
    Mybatis的使用
    XAMPP设置上的问题
    七款Debug工具推荐:iOS
    sqlite内置函数
    CATransition常用动画及type
  • 原文地址:https://www.cnblogs.com/westward/p/5161411.html
Copyright © 2011-2022 走看看