为什么 Java 中哈希表(Hashtable)中的“t”没有大写

8
在Java中,似乎所有的命名都要遵循大小写规则,但HashTable却不同。
Hashtable<String, String> ht = new Hashtable<String, String>();

与之相反
ArrayList<String> a = new ArrayList<String>();

或者
HashMap<String,Integer> a = new HashMap<String,Integer>(); 

这是为什么呢?哈希表的读法是不是只有一个单词(Hashtable)?

2
这个问题有多少技术含量?大小写字母 "t" 会引起任何问题或混淆吗? - kosa
我想技术上的问题在于使用非建议性的Java编辑器 - 我总是习惯遵循大写规则,所以最终会写成 HashTable。 - Vrashabh Irde
1
@Nambari:这是一个完全有效的问题。提名重新开放。 - Nandkumar Tekale
2
更有趣的是,为什么C#也有相同的Hashtable呢?“http://msdn.microsoft.com/en-us/library/system.collections.hashtable.aspx” - irreputable
2个回答

11
< p >Hashtable 是在Java v1中创建的。在Java2之后建立了集合的一致命名约定,当其他类作为全新的Java Collection Framework的一部分发布时。

顺便提一下,这使得Hashtable已经过时,因此不应在新代码中使用。

希望这能有所帮助。


3
我很惊讶有人真的知道答案:D。 - Uooo
2
FilenameFilter 是一个新的。 - basiljames
2
这不是一个答案,而是一个猜测,而且不是很好的猜测。实际上,Java中任何年龄的其他类都使用驼峰命名法。 - user207421

1

虽然这个问题没有技术价值,但我不得不承认,我已经问过自己几次了 :)

我的看法是,与List(ArrayList)、Set(HashSet)和Map(Tree/HashMap)不同,表格不是一种数据结构。

当然(可能已知),Hashtable类是在集合框架之前创建的(在Java 1.0中)。所以也许在那时他们并没有真正考虑相同的命名约定。 总的来说,我们最好使用Java 2+的集合框架:)


地图不是数据结构?哈希表不是数据结构?非数据结构类不必遵守编码约定?拜托了。 - user207421
我觉得你没有理解我的意思。Map是一种数据结构(作为HashMap的一部分,因此可以大写)。同样也适用于Set(作为HashSet等名称的一部分)。但Hashtable呢?''table''这个词代表了一个数据结构吗?当然,这只是我的想法,整个主题并不是技术性的,所以对我来说,在这里允许有一些猜测 :) - Mark Bramnik
“table”这个词是否表示数据结构?对我来说是的,但即使它不是,最终的问题仍未得到解答。 - user207421
你真的期望得到一个“技术上有效”的答案,解释为什么是 t 而不是 T 吗?至于数据结构——还记得大学里的课程吗?我记得有列表、队列、树等等。我不记得表格了。无论如何,我只是觉得在这个问题中加点火花和幽默不会有害处,而你则持不同看法。拜拜 :) - Mark Bramnik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接