java.util.Collection具有最低的开销?

And*_*ndy 8 java collections overhead

我在另一个接受一个java.util.Collection对象的API中调用一个方法.我查看了该方法,它会ArrayList在执行任务之前立即将集合中的所有内容复制到新的中.

这让我想知道:我可以用来快速组装此方法的参数的绝对最低开销Java Collection是什么?

aio*_*obe 6

这取决于它如何复制元素,但如果它ArrayList像这样创建-copy

new ArrayList<Something>(inputCollection);
Run Code Online (Sandbox Code Playgroud)

或者如果确实如此

someCopy.addAll(inputCollection);
Run Code Online (Sandbox Code Playgroud)

那么它将通过inputCollection.toArray()最好的实现ArrayList.

  • +1好的答案.即使没有使用.toArray(),另一个选项是各种迭代器并遍历一个数组(ArrayList中的底层存储)比其他任何东西都要快.因此,无论是哪种情况,ArrayList都是赢家. (2认同)