java集合能否存储null
package com.idea.test.nulltest; import jxl.common.Assert; import java.util.*; import java.util.concurrent.ConcurrentHashMap; public class NullTest { public static void main(String[] args) { List list = new ArrayList(); list.add(null); list.add(null); System.out.println("ArrayList :"+list.size()); //2 List linkedList = new LinkedList(); linkedList.add(null); linkedList.add(null); System.out.println("LinkedList :"+linkedList.size()); //2 Set set=new HashSet(); set.add(null); set.add(null); System.out.println("HashSet :"+set.size());// 1 Set linkedHashSet=new LinkedHashSet(); linkedHashSet.add(null); linkedHashSet.add(null); System.out.println("LinkedHashSet :"+linkedHashSet.size()); //1 Set treeSet=new TreeSet(); //treeSet.add(null); //treeSet key不能null ava.lang.NullPointerException //treeSet.add(null); // System.out.println("TreeSet : "+treeSet.size()); HashMap<String,String> map = new HashMap<>(); map.put(null,null); map.put("liubei",null); System.out.println("HashMap :"+map.size());// 2 LinkedHashMap linkedHashMap = new LinkedHashMap(); linkedHashMap.put(null,null); linkedHashMap.put("liubei",null); System.out.println("LinkedHashMap :"+linkedHashMap.size()); //2 TreeMap treeMap= new TreeMap<>(); treeMap.put("liu",null); //treeMap key 不能为空,value 可以为空 //treeMap.put(null,"liubei"); //treeMap.put(null,null); System.out.println("TreeMap :"+treeMap.size()); Hashtable table=new Hashtable(); //table.put("liu",null); //table.put(null,"关羽"); //hashtable key与value均不能为空 table.put(null,null); System.out.println("Hashtable"+table.size()); ConcurrentHashMap concurrentHashMap=new ConcurrentHashMap(); //concurrentHashMap.put("liu",null); //concurrentHashmap key 与 value 均不可以为空 //concurrentHashMap.put(null,"zhangfei"); System.out.println("ConcurrentHashMap :"+concurrentHashMap.size()); } }
综上所述可以得出结论:
1、vector、arraylist、linkedlist可以存储多个null.
2、hashset、linkedset可以存储一个null. treeset不能存储null.
3、hashmap 、linkedhashmap key与value均可以为null. treemap key不可以为null,value可以为null. hashtable、concurrenthashmap key与value均不能为null.