码迷,mamicode.com
首页 > 其他好文 > 详细

集合存null测试

时间:2020-12-30 11:28:59      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tree   array   vector   link   int   rgs   out   class   static   

问题

1.List、LinkedList、Vector可以存null吗?
2.HashSet、TreeSet可以存null吗?
3.HashMap、TreeMap、Hashtable可以存null吗?

测试代码

public class TestNull {
    public static void main(String[] args) {

        //List可以存null吗?
        List list = new ArrayList();
        //List list = new LinkedList();
        //List list = new Vector();
        list.add(null);
        list.add(null);  // 有序可重复
        System.out.println("list长度:" + list.size());  // 2
        System.out.println("list内容:" + list.toString());
        System.out.println("====================================");


        // Set可以存null吗? HashSet可以存null  TreeSet存null会报异常NullPointerException
        Set set = new HashSet();
        //Set set = new TreeSet();
        set.add(null);
        set.add(null);  // 无序不可重复
        System.out.println("set长度:" + set.size());  // 1
        System.out.println("set内容:" + set.toString());
        System.out.println("====================================");


        // 测试HashMap中允许键值对为<null, null>
        Map map = new HashMap();
        map.put(null, null);
        System.out.println("HashMap长度:" + map.size());  // 1
        System.out.println("HashMap内容:" + map.toString());
        map.put(null, 100);  // key相同时,会覆盖原来的value值
        System.out.println("HashMap长度:" + map.size());  // 1   说明key为null只能有一个
        System.out.println("HashMap内容:" + map.toString());
        System.out.println("====================================");


        // 测试一下Hashtable能不能存null
        Map hashtable = new Hashtable();
        //hashtable.put(null, null);  // 异常:NullPointerException
        //hashtable.put(null, 100);  // 异常:NullPointerException
        //hashtable.put(100, null);  // 异常:NullPointerException
        // 总结:Hashtable不能存<null, null>, key和value都不能为null


        // Hashtable的子类Properties
        Map properties = new Properties();
        //properties.put(null, null);  // 异常:NullPointerException


        // TreeMap能不能存<null, null>
        Map treeMap = new TreeMap();
        //treeMap.put(null, null);  // 异常:NullPointerException
        //treeMap.put(null, 100);  // 异常:NullPointerException
        treeMap.put(100, null);  // 发现value可以存null
        System.out.println("treeMap内容:" + treeMap.toString());
        // TreeMap的value可以为空,即<Object, null>可以存
    }
}

总结

综上,常用集合中只有TreeSet不能存null,TreeMap可以存<Object, null>,Hashtable及其子类Properties不能存null,key和value都不能为null

集合存null测试

标签:tree   array   vector   link   int   rgs   out   class   static   

原文地址:https://www.cnblogs.com/masterL/p/testnull.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!