1
48
让我们仔细看看其中两个:
以下是发生的事情:
以下是发生的事情:
我们现在可以看到
这就是说,除非分析显示出其他情况,否则差异不大可能是“显著的”。不要过早优化。虽然Java集合框架类可能比数组慢,但它们对大多数应用程序执行得远远不够。 API链接
也见
相关问题总结
|
2
3
它可能更快的唯一原因是,它避免了对array.aslist的调用,因为它只是包装了数组,所以调用成本相对较低。一些集合实现(例如LinkedList)在添加元素之前将传递的集合转换回数组,从而导致额外的开销。 另一方面,arraylist.addall在添加任何元素之前只分配一次所需的空间,因此当collections.addall需要对支持数组进行多次调整时,应该更快。 总之,当只向集合中重复添加几个元素时,collections.addall可能更快,但我怀疑这种情况是否会成为性能瓶颈。 |
3
1
(让我们在SE平台6上构建) 这完全取决于实际的收集实现。在你的例子中,我们有
和
你可能会注意到
此静态方法基于
所以实际上我们这里要处理的是两个电话
所以,总结一下Polygene润滑剂先生的风格:
对于数组中的5个对象
而且,这一切都取决于集合的实现。
|
4
1
以下是@polygeneulates提到的每个步骤的(近似)相关时间复杂度成本函数: a)参数列表上3次迭代~=c(3n) b)参数列表上2次迭代~=c(2n) 很明显,它们都是O(N),但是方法B比方法A节省了~n个比较。希望这对任何对定量解释感兴趣的人都有帮助。 |