hashmap和hashtable的区别
Posted Java学习基地Java毕设定制
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hashmap和hashtable的区别相关的知识,希望对你有一定的参考价值。
Hashmap是基于哈希表实现的,每一个元素都是Key-Value对,其内部通过单链表解决冲突问题,容量不足时,会自动增长
Hashmap是非线程安全的,只适用于单线程环境下,多线程下可以采用concurrent并发包下的concurrentHashmap.
Hashmap实现了serializable因此支持序列化,实现了Cloneable接口,可以被克隆
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的区别的主要内容,如果未能解决你的问题,请参考以下文章