2012-09-20 30 views
8

Java中的所有内容似乎都遵循除Hashtable之外的大写规则。为什么Java中的哈希表(Hashtable)中的't'未被大写

Hashtable<String, String> ht = new Hashtable<String, String>(); 

,而不是

ArrayList<String> a = new ArrayList<String>(); 

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

这是为什么?哈希表是否只读为一个单词(哈希表)?

+2

这个问题有多少技术是?小“t”是否会引起任何问题(或)混淆? – kosa

+0

这是一个早期的bug :-) –

+0

我认为技术性在于使用Java的非建议编辑器 - 我总是最终编写HashTable,因为我习惯遵循大写规则 – Slartibartfast

回答

9

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

其中btw使Hashtable过时,所以它不应该在新的代码中使用。

希望有所帮助。

+2

我很惊讶有人真的知道答案:D – Uooo

+1

[FilenameFilter](http:// docs。 oracle.com/javase/7/docs/api/java/io/FilenameFilter.html)是一个新的。 – basiljames

+1

这不是一个答案,这是一个猜测,而不是一个很好的答案。几乎任何年龄的Java的其他班级都使用骆驼案例。 – EJP

1

虽然这个问题没有技术价值,我不得不承认,我一直问自己这个几次:)

我的版本是,不像列表(ArrayList中),集(HashSet的),地图( Tree/HashMap)表不是数据结构。

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

+0

地图不是数据结构?散列表不是数据结构?非数据结构类不必遵守编码约定?请。 – EJP

+0

我想你没有明白我的观点。 Map是一个数据结构(作为名称HashMap的一部分,因此可以大写)。这同样适用于Set(作为名称HashSet的一部分等)。但是Hashtable呢? “table”这个词是否表示数据结构?当然,这只是我的想法,整个线程不是技术性的,所以对于我来说,这里允许某种猜测:) –

+0

“表单字表示数据结构吗?”它对我有用,但即使它没有,仍然留下最后的问题没有答案。 – EJP