我通常总是发现使用标题中列出的接口的具体类就足够了.通常当我使用其他类型(例如LinkedList或TreeSet)时,原因是功能而不是性能 - 例如,队列的LinkedList.
我有时构造的ArrayList的初始容量大于默认值10,HashMap的默认值大于16,但我通常(特别是对于业务CRUD)从未看到自己在想"嗯...我应该使用LinkedList而不是ArrayList,如果我要插入并遍历整个List?"
我只是想知道这里的其他人使用什么(以及为什么)以及他们开发的应用程序类型.
Yis*_*hai 10
这些肯定是我的默认值,虽然通常LinkedList实际上是列表的更好选择,因为绝大多数列表似乎只是按顺序迭代,或者无论如何通过Arrays.asList转换为数组.
但是在保持一致的可维护代码方面,标准化那些并使用替代品是有道理的,当有人读取代码并看到替代方案时,他们立即开始认为代码正在做一些特殊的事情.
我总是将参数和变量键入为Collection,Map和List,除非我有特殊的理由来引用子类型,这样在需要时切换是一行代码.
如果你需要随机访问,我有时会看到明确要求一个ArrayList,但在实践中确实没有发生.