美文网首页
Java基础:Hashmap和Hashtable

Java基础:Hashmap和Hashtable

作者: 无与凡想 | 来源:发表于2019-01-07 20:23 被阅读0次

    HashMap和HashTable都是Map集合之下的一个实现类。它们的底层都是哈希表,也就是一种数组加链表的数据结构。而HashMap可以说是HashTable的一种轻量级实现。它们之间的区别大致如下:

    HashMap是非线程安全的,它的性能比Hashtable高,允许空键空值,在jdk1.8后,它的底层数据结构有所变化。在长度小于等于6时,为哈希表,大于等于8时,变为红黑树。7可以作为之间的缓冲,避免反复改变数据结构。

    Hashtable是线程安全的,不允许键或值为nul。

    hashmap的初始值长度:hashmap的长度是无限的。为了更好的性能又不浪费空间,它设置了一个负载因子,默认为0.75。负载因子=实际长度/容量。因此如果知道要存储1000条数据,初始长度应该设为1333。如果不知道长度,默认为16。

    相关文章

      网友评论

          本文标题:Java基础:Hashmap和Hashtable

          本文链接:https://www.haomeiwen.com/subject/ncpprqtx.html