【发布时间】:2009-06-23 15:53:59
【问题描述】:
在我的代码中,我默认对所有列表使用 ArrayList,对所有映射使用 HashMap,对所有集合使用 HashSet。
从实际的角度来看,由于选择了错误的实现,我在灵活性、可扩展性、可读性和性能方面损失了多少?什么时候花时间决定使用一个而不是另一个有意义?
我当然看到了一个非常明确的案例,说明为什么在某些情况下有人会使用 LinkedList 而不是 ArrayList。什么时候有人觉得使用 HashMap 而不是 TreeMap 或 HashTable 很重要?套装呢?
问题:
- 选择不当的代价是什么?
- 是否有人遇到过关于选择错误实施和数据中心起火的灾难故事?
- 有什么好的经验法则吗?
- 是否有任何您离不开的晦涩集合实现?
我已通读:
- https://docs.oracle.com/javase/1.5.0/docs/api/java/util/TreeMap.html
- https://docs.oracle.com/javase/1.5.0/docs/api/java/util/HashMap.html
- Java: ArrayList for List, HashMap for Map, and HashSet for Set? 等等……
我发现 this 的问题从理论上讲是相关的,但我对现实世界更感兴趣,在战壕中回答。
【问题讨论】:
-
这真的像是 4 个问题合而为一,实际上更像是一个讨论而不是一个问题
-
可能相关的答案:bit.ly/1NSlx
-
问题 - 用于请求信息的语言表达?这怎么能算作一个问题?
-
[rules-of-thumb] 是元标记,这里不需要添加。
标签: java collections hashmap