哪一个更有效地实例化列表?
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"));
答案 0 :(得分:14)
他们创建不同类型的对象。 new ArrayList<>()
创建了java.util.ArrayList
,可以将其添加到等等
Arrays.asList()
使用的类型恰好也称为ArrayList
,但是是嵌套类型(java.util.Arrays$ArrayList
)而不会允许元素要添加或删除。 只是包装一个数组。
现在,如果您不关心这些差异,最终会得到两个大致相当的实现,两个都在List<>
接口中包装一个数组。我会非常惊讶地看到它们在性能上有任何显着差异 - 但是,如果您有特定的性能问题,那么您应该在特定的环境中对它们进行测试。