HashMap VS Hashtable

简介: HashMap与Hashtable的异同点hashtable是线程安全的,hashmap不是。对线程要求不严格的情况下,hashmap的性能更好。HashTable不允许null作为key值或value值,Hashmap可以允许一个null作为key值,同时允许多个null作为value值。

HashMap与Hashtable的异同点

  1. hashtable是线程安全的,hashmap不是。对线程要求不严格的情况下,hashmap的性能更好。
  2. HashTable不允许null作为key值或value值,Hashmap可以允许一个null作为key值,同时允许多个null作为value值。
  3. HashMap有个子类LinkedHashMap,如果你想实现线性的HashMap,让元素有序插入,如果你使用HashMap的话,你可以较方便的切换为LinkedHashMap,但是如果你使用HashTable,就会麻烦很多。

现在也很少使用Hashtable了,因为Hashtable在保证线程安全的时候,只是简单的加上synchronized关键字,性能上并没有多好。如果想使用线程安全的hashmap,你应该使用ConcurrentHashMap.

相关文章
|
7月前
|
存储 缓存 安全
面试题-HashMap底层原理与HashTable的区别
字节跳动面试题-HashMap底层原理与HashTable的区别
66 0
|
21天前
|
安全
HashTable与HashMap的区别
(1)HashTable的每个方法都用synchronized修饰,因此是线程安全的,但同时读写效率很低 (2)HashTable的Key不允许为null (3)HashTable只对key进行一次hash,HashMap进行了两次Hash (4)HashTable底层使用的数组加链表HashTable与HashMap的区别
23 2
|
2月前
|
存储 缓存 安全
HashMap VS TreeMap:谁才是Java Map界的王者?
HashMap VS TreeMap:谁才是Java Map界的王者?
85 2
|
2月前
|
存储 开发者
HashMap和Hashtable的key和value可以为null吗,ConcurrentHashMap呢
HashMap的key可以为null,value也可以为null;Hashtable的key不允许为null,value也不能为null;ConcurrentHashMap的key不允许为null
|
4月前
|
存储 安全 Java
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
这篇文章是关于Java面试的第二天笔记,涵盖了HashMap与HashTable的区别、ConcurrentHashMap的实现原理、IOC容器的实现方法、字节码的概念和作用、Java类加载器的类型、双亲委派模型、Java异常体系、GC如何判断对象可回收、线程的生命周期及状态,以及sleep、wait、join、yield的区别等十道面试题。
一天十道Java面试题----第二天(HashMap和hashTable的区别--------》sleep、wait、join)
|
4月前
|
安全 Java
【Java集合类面试十五】、说一说HashMap和HashTable的区别
HashMap和Hashtable的主要区别在于Hashtable是线程安全的,不允许null键和值,而HashMap是非线程安全的,允许null键和值。
|
4月前
|
存储 安全 Java
Hashtable 和 HashMap 的区别
【8月更文挑战第22天】
165 0
|
6月前
|
安全 存储 Java
HashMap和Hashtable区别是什么?
HashMap和Hashtable区别是什么?
43 4
|
6月前
|
存储 缓存 安全
HashMap VS TreeMap:谁才是Java Map界的王者?
【6月更文挑战第18天】Java的HashMap和TreeMap各具特色。HashMap基于哈希表,提供快速但无序的O(1)操作,适合高性能需求;TreeMap采用红黑树,保证有序性,适合排序和遍历。两者皆非线程安全,需在多线程环境中额外同步。选择时应依据具体需求和场景。
115 0
|
7月前
|
存储 安全 Java
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
Java容器类List、ArrayList、Vector及map、HashTable、HashMap
50 0