hashmap和hashtable的区别

Posted Java学习基地Java毕设定制

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashmap和hashtable的区别相关的知识,希望对你有一定的参考价值。

Hashmap是基于哈希表实现的,每一个元素都是Key-Value对,其内部通过单链表解决冲突问题,容量不足时,会自动增长

Hashmap是非线程安全的,只适用于单线程环境下,多线程下可以采用concurrent并发包下的concurrentHashmap.

Hashmap实现了serializable因此支持序列化,实现了Cloneable接口,可以被克隆


hashmap和hashtable的区别

HashTable

Hashtable是基于哈希表实现的,每一个元素都是key-value对,其内部通过单链表解决冲突问题,容量不足时,会自动增长.

Hashtable是jdk1.0的时候使用的,是线程安全的,能用于多线程环境中.

Hashtable实现了serializable因此支持序列化,实现了Cloneable接口,可以被克隆

HashMap中key和value都允许为null。key为null的键值对永远都放在以table[0]为头结点的链表中。

HashTable则不可以空!~

TreeMap和hashmap的区别

treemap是基于红黑树的

treemap是排序的,默认是升序排序


HashSet

集合元素可以是null,但只能放入一个null

TreeSet类

TreeSet是SortedSet接口的唯一实现类,TreeSet可以确保集合元素处于排序状态。TreeSet支持两种排序方式,自然排序 和定制排序,其中自然排序为默认的排序方式。向TreeSet中加入的应该是同一个类的对象。


以上是关于hashmap和hashtable的区别的主要内容,如果未能解决你的问题,请参考以下文章

HashMap与HashTable的区别

HashMap和Hashtable的区别?

HashMap和HashTable的区别是什么

HashMap和Hashtable的区别

hashMap和hashTable区别

hashMap和hashTable的区别