java数据结构13_Hashtable类详解

Hashtable类和HashMap用法几乎一模一样,底层都是采用哈希表接口,查询速度快,在很多情况下可以互用。

只不过Hashtable类继承于Dictionary类并实现了Map接口,HashMap类只是Map接口的实现类。另外Hashtable的方法添加了Synchronized关键字确保线程同步检查,效率较低

比如:put(K key, V value)方法就增加了synchronized同步标记。
在这里插入图片描述
相比较于HashMap,Hashtable还包含了许多传统的方法,虽然这些方法不属于集合框架。

【示例】Hashtable类传统方法演示

public class Test {
	public static void main(String[] args) {
		// 创建Hashtable对象
		Hashtable<String, String> ht = new Hashtable<String, String>();
		// 添加键值对
		ht.put("cn", "China");
		ht.put("jp", "Japan");
		ht.put("us", "America");
		// 遍历所有的key,keys()方法类似于keySet()方法
		Enumeration<String> keys = ht.keys();
		while(keys.hasMoreElements()) {
			String key = keys.nextElement();
			System.out.println(key + "-->" + ht.get(key));
		}
		// 遍历所有的value,elements()方法类似于values()方法
		Enumeration<String> elements = ht.elements();
		while(elements.hasMoreElements()) {
			String element = elements.nextElement();
			System.out.println("value: " + element);
		}
	}
}

【新手建议】HashMap与HashTable的区别

  1. HashMap:线程不安全,效率高,允许key或value为null。
  2. Hashtable:线程安全,效率低,不允许key或value为null。

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了35 篇原创文章 · 获赞 0 · 访问量 355

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104555903