在我的代码中,我默认对所有列表使用 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:List 的 ArrayList、Map 的 HashMap 和 Set 的 HashSet? ETC...
我发现从理论的角度来看这个问题是相关的,但我对现实世界更感兴趣,在战壕中回答。