哪一个使用数组列表更有效?

时间:2016-01-28 14:40:34

标签: java list arraylist collections memory-efficient

哪一个更有效地实例化列表?

List<Type> list = new ArrayList<Type>(2);
list.add(new Type("one"));
list.add(new Type("two"));

OR

List<Type> list = Arrays.asList(new Type("one"), new Type("two"));

1 个答案:

答案 0 :(得分:14)

他们创建不同类型的对象。 new ArrayList<>()创建了java.util.ArrayList,可以将其添加到等等

Arrays.asList()使用的类型恰好也称为ArrayList,但是是嵌套类型(java.util.Arrays$ArrayList)而不会允许元素要添加或删除。 只是包装一个数组。

现在,如果您不关心这些差异,最终会得到两个大致相当的实现,两个都在List<>接口中包装一个数组。我会非常惊讶地看到它们在性能上有任何显着差异 - 但是,如果您有特定的性能问题,那么您应该在特定的环境中对它们进行测试。