Hashtable 为什么不叫 HashTable?

简介: 前几天在写《HashMap 和 Hashtable 的 6 个区别》这篇文章的时候,差点把 Hashtable 写成了 HashTable,后来看源码证实了是:Hashtable,小写的 "t"able,不符合驼峰命名规则。

前几天在写《HashMap 和 Hashtable 的 6 个区别》这篇文章的时候,差点把 Hashtable 写成了 HashTable,后来看源码证实了是:Hashtable,小写的 "t"able,不符合驼峰命名规则。

image.png当时就很好奇,Hashtable 为什么不是 HashTable 呢?作为一名初级的 Java 程序员都应该知道的基本的驼峰命名规则,为什么 JDK 代码里面还有这种不规范的命名呢?


我想大家应该都比较好奇,我特意去查了下资料,没有查到官方的说法,不过在 stackoverflow 上看到了同样的这个问题。


原贴如下:


https://stackoverflow.com/questions/12506706/why-is-the-t-in-hash-tablehashtable-in-java-not-capitalized

最佳答案是:


Hashtable was created in Java v1. The consistent naming conventions for collections were established later, in Java2, when the other classes were published as part of the brand new Java Collection Framework.


Which btw made Hashtable obsolete, so it should not be used in new code.


Hope that helps.


意思就是:


Hashtable 是在 Java 1.0 的时候创建的,而集合的统一规范命名是在后来的 Java 2 开始约定的,当时其他一部分集合类的发布构成了新的集合框架。


顺便说一下,这样就使得 Hashtable 过时了,所以不应该在新代码中继续使用它。


栈长看了下,Hashtable 确实是 JDK1.0 添加的,最早的一个集合类,这样也说得过去。那为什么不在后面的 JDK 版本中修复它呢?可能是为了考虑兼容使用 JDK 老版本的系统吧。所以就将错就错封存在了 JDK,直到现在 JDK 11 了也还没有修复或者考虑删除它。


另外,关于《HashMap 和 Hashtable 的 6 个区别》,有人留言说可以使用 currenthashtable。




栈长又去证实了下,没有 currenthashtable 和 concurrenthashtable 这个类,所有 concurrent* 开头的并发类和接口都在这里了。




好了,关于 Hashtable 的迷惑就此全都解开了。


所有 Java JVM、多线程、集合、新特性等系列文章请在微信公众号 “Java技术栈” 后台回复关键字:java,后续也会不断更新。


有收获?转发给更多的人吧!



相关文章
|
6月前
|
安全 Java
HashMap和Hashtable的区别
HashMap和Hashtable的区别
35 2
|
6天前
|
安全 算法
HashMap和Hashtable 的区别
HashMap和Hashtable 的区别
19 0
|
6天前
|
存储 安全 Java
HashMap和HashTable的区别
HashMap和HashTable的区别
25 0
|
10月前
|
安全
HashMap 和 HashTable 的区别
HashMap 和 HashTable 的区别
88 0
|
存储 安全 Java
HashMap和Hashtable以及ConcurrentHashMap的区别
HashMap是在JDK1.2中引入的Map的实现类。
276 0
|
存储 安全 Java
一文带你深入理解Hashtable
一文带你深入理解Hashtable
114 0
一文带你深入理解Hashtable
|
存储 安全
HashTable 与HashMap区别
HashTable 与HashMap区别
83 0
|
存储 安全 算法
HashMap和Hashtable的联系与区别
HashMap和Hashtable的联系与区别
140 0
HashMap和Hashtable的联系与区别
|
安全 Java
HashMap与HashTable的区别
HashMap与HashTable的区别
91 0
|
SQL 安全 网络协议
HashTable,ConcurrentHashMap这些你知道吗
又到了整理技术点的时间了,今天讲述的是ConcurrentHashMap,大家对这个我相信也是很熟悉的,不知是否知道以下面试常问的一些技术点呢?
HashTable,ConcurrentHashMap这些你知道吗