首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hashtable 为什么不叫 HashTable

前几天在写《HashMap 和 Hashtable 的 6 个区别》这篇文章的时候,差点把 Hashtable 写成了 HashTable,后来看源码证实了是:Hashtable,小写的 "t"able...当时就很好奇,Hashtable 为什么不是 HashTable 呢? 作为一名初级的 Java 程序员都应该知道的基本的驼峰命名规则,为什么 JDK 代码里面还有这种不规范的命名呢?...最佳答案是: Hashtable was created in Java v1....顺便说一下,这样就使得 Hashtable 过时了,所以不应该在新代码中继续使用它。 栈长看了下,Hashtable 确实是 JDK1.0 添加的,最早的一个集合类,这样也说得过去。...另外,关于《HashMap 和 Hashtable 的 6 个区别》,有人留言说可以使用 currenthashtable。 ?

62230
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    hashmap和hashtable的区别,说法错误的是_javamap的用法

    二、Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。...Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。 Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。...Hashtable继承自Dictionary类,Dictionary类是一个已经被废弃的类(见其源码中的注释)。父类都被废弃,自然而然也没人用它的子类Hashtable了。...HashTable实现线程安全的代价就是效率变低,因为会锁住整个HashTable,而ConcurrentHashMap做了相关优化,因为ConcurrentHashMap使用了分段锁,并不对整个数据进行锁定...,效率比HashTable高很多。

    34620

    Hashtable源码解析

    今天我们来分析一下Hashtable的底层实现。提到Hashtable可能对于有些人来说会比较陌生,因为不经常使用。这是因为Hashtable是很早就有的集合类了,因为它是在JDK1.0版本中存在的。...HashMap集合是在Hashtable集合之后才有的。也可以理解为HashMap集合是优化后的Hashtable。...既然我们已经掌握了HashMap的底层实现,那么我们在分析Hashtable时会比较容易,所以本篇中将直接分析Hashtable的底层源码,将不在介绍哈希表的相关知识了。...上面源码是Hashtable集合初始化时所调用的方法,也就是我们通过默认无参的构造方法创建Hashtable对象时,就会执行上述代码。...value Hashtable不能保存相同的key元素,如果元素的key相同,则将后添加到Hashtable中的元素的value覆盖原Hashtable已经存在的元素的value Hashtable执行再散列时

    44320

    详解HashMap、HashTable

    1 HashTable HashTable和HashMap的关系最近,可以认为是HashMap的线程安全版本。...1.2 对比 HashTable和HashMap的区别主要有: HashMap是非线程安全的,HashTable是线程安全的。HashTable实现线程安全的办法是在方法上加同步锁,因此性能更差。...HashMap允许插入null值,而HashTable不允许。插入null时,HashTable会抛出NullPointerException。...HashMap默认初始化数组大小是16,HashTable的默认初始化数组大小是11。HashMap扩容容量变为2n,HashTable扩容时容量变为2n+1,这样元素分布更为均匀。...HashTable中的同步方法实际上是对整个HashTable对象加锁,任何操作都会锁住整个对象。这样,当操作变多时,或者HashTable变大时,性能会很差。

    45620

    Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法

    Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法 ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素...典型的用法如下:     Iterator it = collection.iterator(); // 获得一个迭代子     while(it.hasNext()) {       Object...Hashtable类   Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。   ...使用Hashtable的简单示例如下,将1,2,3放到Hashtable中,他们的key分别是”one”,”two”,”three”:     Hashtable numbers = new Hashtable...Hashtable是同步的。 HashMap类   HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null value和null key。

    1.5K80
    领券