java中的容器添加null的测试

昨天写代码的时候需要往容器中添加null,所以主要测试了几个常见的容器能否添加null的情况,如下:

public class TestNull {
    public static void main(String[] args) {  
        //HashMap  允许null-null键值对  
        Map<String,String> hashMap = new HashMap<String,String>();  
        try {
            hashMap.put("test1", "value1");  
            hashMap.put("test2", null);  
            hashMap.put(null, "value2");  
            hashMap.put(null, null);  
            System.out.println("HashMap添加null-null成功。" + "(hashMap.size() = " + hashMap.size() + ")" );  
        } catch (Exception e) {
            System.out.println("Hash添加失败。" + "(Error : " + e.toString() + ")");
        }
         
       //TreeMap  不允许(null,null),允许value为null 会调用比较器
       TreeMap<String,String> treeMap1 = new TreeMap<String,String>();  
       try {
           treeMap1.put("test1", null);
           treeMap1.put("test2", null);
           System.out.println("TreeMap添加value为null成功。");
       } catch (NullPointerException e) {
           System.out.println("TreeMap添加value为null失败。" + "(Error : " + e.toString() + ")");
       }
       TreeMap<String,String> treeMap2 = new TreeMap<String,String>();  
       try {
           treeMap2.put(null, null);
           System.out.println("TreeMap添加(null,null)成功");
       } catch (NullPointerException e) {
           System.out.println("TreeMap添加(null,null)失败。" + "(Error : " + e.toString() + ")");
       }

       //TreeSet  不允许  跟TreeMap都是用红黑树实现的 也会调用比较器
       Set<String> treeSet = new TreeSet<String>(); 
       try {
           treeSet.add(null);   
           System.out.println("TreeSet添加null成功。");  
       }catch (NullPointerException e) {
           System.out.println("TreeSet添加null失败。" + "(Error : " + e.toString() + ")");
       }

         
         
       //HashSet  
       Set<String> hashSet = new HashSet<String>(); 
       try {
           hashSet.add(null);  
           hashSet.add("test");  
           System.out.println( "HashSet添加null成功。" + "(hashSet.size() = " + hashSet.size() + ")" );  
       }catch (NullPointerException e) {
           System.out.println("HashSet添加null失败。" + "(Error : " + e.toString() + ")");
       }
 
    

       //ArrayList  
       List<String> arrayList = new ArrayList<String>(); 
       try {
           arrayList.add(null);  
           arrayList.add("test");  
           System.out.println( "ArrayList添加null成功。" + "(arrayLisht.size() = " + arrayList.size() + ")" );    
       } catch (NullPointerException e) {
            System.out.println("ArrayList添加null失败。" + "(Error : " + e.toString() + ")");
       }

         
       //LinkedList  
       List<String> linkedList = new LinkedList<String>();  
       try {
           arrayList.add(null);  
           arrayList.add("test");  
           System.out.println( "LinkedList添加null成功。" + "(linkedList.size() = " + linkedList.size() + ")" );    
       } catch (NullPointerException e) {
            System.out.println("LinkedList添加null失败。" + "(Error : " + e.toString() + ")");
       }
       
       Deque<String> arrayDeque = new ArrayDeque<String>();
       try {
           arrayDeque.addFirst(null);
           System.out.println( "ArrayDeque添加null成功。" + "(arrayDeque.size() = " + arrayDeque.size() + ")" );    
    } catch (Exception e) {
            System.out.println("ArrayDeque添加null失败。" + "(Error : " + e.toString() + ")");
    }
  }  
}

测试结果如下:

HashMap添加null-null成功。(hashMap.size() = 3)
TreeMap添加value为null成功。
TreeMap添加(null,null)失败。(Error : java.lang.NullPointerException)
TreeSet添加null失败。(Error : java.lang.NullPointerException)
HashSet添加null成功。(hashSet.size() = 2)
ArrayList添加null成功。(arrayLisht.size() = 2)
LinkedList添加null成功。(linkedList.size() = 0)
ArrayDeque添加null失败。(Error : java.lang.NullPointerException)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,314评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,324评论 18 399
  • 难得有点空暇的时间,写写文章,一壶小茶,惬意。扯远了,言归正传。 大家在做App开发的时候,肯定遇到过在一个列表中...
    小酒窝_David阅读 10,007评论 8 9
  • 故事从08年说起。 初升高,以班上第二名的成绩进入0808班,从此,08这个数字便与我结下不解之缘,有欣喜有畏惧。...
    Echo津阅读 1,382评论 0 0
  • 纷纷扬扬的雪花已经渐渐变小了,路面上也没有什么积雪,唯有小区的草坪上、灌木丛上积了些雪。早上下雪时候听到的孩子们的...
    欢喜的珍珍阅读 1,274评论 0 0

友情链接更多精彩内容