标签: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
标签:tree array vector link int rgs out class static
原文地址:https://www.cnblogs.com/masterL/p/testnull.html