|
6
|
| Ethan Heilman · 技术社区 · 17 年前 |
|
|
1
7
这是一个非常笼统的问题,但我会提出一些想法。
选择不当的成本可以从绩效惩罚中看出。例如,当直接访问(如ArrayList)是您要查找的内容时,选择LinkedList。 布景也有类似的问题。如果您想保持已排序的集合不存在重复项,则SortedSet将是比HashSet更明智的选择。在后一种方法中,必须手动对整个集合进行排序(这是对Collections.sort()的调用)
至于 maps ,有很多不同的实现。每一个都有不同的目的。 例如,有 SortedMap WeakHashMap ,它不像HashMap那样工作,因为垃圾收集器可以删除密钥。 可以想象,HashMap和WeakHashMap之间的选择并不简单。和往常一样,这取决于您想用它们实现什么。
关于这个故事,在我当前的项目中,我们用SortedSet替换了HashSet,因为性能受到了影响。但数据中心并没有着火。 我的两分钱。 |
|
|
2
1
只要你遵循良好的OO实践 取决于抽象类型 ,这有什么关系?
例如,如果你发现你用错了
|
|
|
3
1
使用您列出的默认实现。当出现性能问题,并且有理由相信替代实现会更好时,将其替换掉——并测量差异。当您需要特殊行为(例如,排序集)时,请使用特殊类。 这种方法还没有把我烧死。 |
|
|
Giffyguy · 如何限制在构造向量后调用'resize()'? 4 年前 |
|
|
vytaute · 返回表类型时Oracle函数中的类型错误 4 年前 |
|
|
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 4 年前 |
|
|
dev-chicco · Laravel系列寻找常见物品 4 年前 |
|
|
Mitch · Laravel-雄辩的单品合并系列 8 年前 |
|
|
Kieran · 为什么类X可以从集合继承<X> 8 年前 |
|
|
John · 如何在不返回集合本身的情况下返回集合的数据? 8 年前 |
|
|
Niklas Mertsch · 在泛型集合中实现移除(对象o) 8 年前 |