集合存null测试 | 您所在的位置:网站首页 › hashtable能存null吗 › 集合存null测试 |
问题
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中允许键值对为 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不能存, key和value都不能为null // Hashtable的子类Properties Map properties = new Properties(); //properties.put(null, null); // 异常:NullPointerException // TreeMap能不能存 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可以为空,即可以存 } } 总结综上,常用集合中只有TreeSet不能存null,TreeMap可以存,Hashtable及其子类Properties不能存null,key和value都不能为null |
CopyRight 2018-2019 实验室设备网 版权所有 |