本文主要是介绍question_021-JAVA之Map之Hashtable???,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
JAVA之
Map之
Hashtable
-------------------------------------
HashMap和Hashtable区别:
1)Hashtable是同步的(线程安全,效率低),且不可使用null值作为键和值
2)HashMap是不同步的(线程不安全,效率高),且键和值都可以为null
初次之外,HashMap和Hashtable是没有区别的,HashMap用来替代Hashtable
-------------------------------------
package com.lyMapHashMap;
import java.util.HashMap;
import java.util.Hashtable;
/**
* HashMap和Hashtable的区别:
* HashMap:异步,高效,键和值都可以为null
* Hashtable:同步,低效,键和值都不可以为null
* @author Jack
*
*/
public class HashtableDemo {
public static void main(String[] args) {
// 使用HashMap可以存入null值
HashMap<String, String> hm = new HashMap<String, String>();
hm.put(null, "123");
hm.put("121", null);
hm.put("下", "xia");
System.out.println("hm: "+hm);
System.out.println("--------");
// 使用Hashtable不可以存入null值
Hashtable<String, String> ht = new Hashtable<String, String>();
ht.put(null, "123"); // 出现异常
ht.put("121", null); // 出现异常
ht.put("下", "xia");
System.out.println("ht: "+ht);
System.out.println("--------");
}
}
----------------------------
hm: {null=123, 下=xia, 121=null}
--------
Exception in thread "main" java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:399)
at com.lyMapHashMap.HashtableDemo.main(HashtableDemo.java:30)
·····································
这篇关于question_021-JAVA之Map之Hashtable???的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!