List、Set、Map集合存放null解析及HashMap、Hashtable异同点解析
来源:互联网 发布:好玩的java web项目 编辑:程序博客网 时间:2024/05/21 06:20
1.List、Set、Map集合存放null解析:
@Testpublic void CollectionTest() {// 测试ListList<Object> list = new ArrayList<Object>();list.add(null);list.add(null);System.out.println(list);// 测试SetSet<Object> set = new HashSet<Object>();set.add(null);set.add(null);System.out.println(set);// 测试HashMap与HashtableMap<Object, Object> hashMap = new HashMap<Object, Object>();hashMap.put(null, null);hashMap.put(null, null);hashMap.put(1, null);hashMap.put(1, 12);System.out.println(hashMap);/// Maps the specified <code>key</code> to the specified// <code>value</code> in this hashtable. Neither the key nor the// value can be <code>null</code>. <p>Map<Object, Object> hashtable = new Hashtable<Object, Object>();hashtable.put(1, "string1");hashtable.put(2, "string2");System.out.println(hashtable);}//打印结果://[null, null]//[null]//{null=null, 1=12}//{2=string2, 1=string1}
由此可知:
List 集合可以存储null,添加几个,存储几个;
Set集合也可以存储null,但只能存储一个,即使添加多个也只能存储一个;
HashMap可以存储null键值对,键和值都可以是null,但如果添加的键值对的键相同,则后面添加的键值对会覆盖前面的键值对,即之后存储后添加的键值对;
Hashtable不能碰null,不管是值还是键,一见null就报空指针。
2.HashMap、Hashtable异同点
相同点:两者都实现了Map接口
不同点:① HashMap可以存储null键值对,Hashtable不能存储null键值对;
② HashMap是非synchronized,而Hashtable是synchronized。sychronized意味着在一次仅有一个线程能够更改Hashtable。就是说任何线程要更新Hashtable时要首先获得同步锁,其它线程要等到同步锁被放之后才能再次获得同步锁更新Hashtable。也就是说,Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。如果不需要同步只需要单一线程,那么使用HashMap性能要好过Hashtable。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。所以如果需要完全安全的线程,需要使用Hashtable或者ConcurrentHashMap。
- List、Set、Map集合存放null解析及HashMap、Hashtable异同点解析
- java 集合类 map set list arraylist hashmap hashtable
- Java 集合类 map set list arraylist hashmap hashtable
- java集合: List、Set、Map总结 + HashMap/Hashtable 区别
- List、Map、Set、HashMap、HashSet、Hashtable
- List Set Map 解析
- list ,set,map 三中类型的集合那些能存放null类型的值
- HashMap及HashTable源码解析
- HashMap和Hashtable异同点
- List、Set、Map简单解析
- HashMap和HashTable异同点及使用场景
- HashMap和HashTable异同点及使用场景
- 集合详解<ArrayList,Linklist,vector、set;Map《hashMap,HashTable》>
- HashTable,HashMap,LIST,SET,MAP的区别和联系
- HashTable,HashMap,LIST,SET,MAP的区别和联系
- Collection:List、Set和Map:HashMap、HashTable区别
- HashTable,HashMap,LIST,SET,MAP的区别和联系
- List,Set,Map用法区别 以及 hashmap hashtable区别
- HADOOP 集群安装配置
- Java Annotation详解+自定义java注解(一)
- 每天学点java—文档注释
- 日期分类
- 利用RANSAC算法筛选SIFT特征匹配
- List、Set、Map集合存放null解析及HashMap、Hashtable异同点解析
- JAVA学习笔记(四)
- Eratosthenes筛法
- UVALive - 4287 Proving Equivalences(强连通分量 + DAG)
- 10271 - Chopsticks
- 2015ZZUACM暑期集训
- AT指令发送短信流程
- hive 实战笔记case1
- 将数字字符串转换为整型