【问题标题】:Which one is more efficient of using array list?使用数组列表哪个更有效?
【发布时间】:2016-05-06 00:02:40
【问题描述】:

哪个实例化列表更有效?

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

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

【问题讨论】:

    标签: java list arraylist collections memory-efficient


    【解决方案1】:

    他们创建不同类型的对象。 new ArrayList&lt;&gt;() 创建一个java.util.ArrayList,可以添加等。

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

    现在,如果您不关心这些差异,您最终会得到两个大致等效的实现,它们都将数组包装在 List&lt;&gt; 接口中。如果看到它们在性能上有任何显着差异,我会感到非常惊讶 - 但与以往一样,如果您有特定性能问题,您应该在您的特定环境中测试它们。

    【讨论】:

    • 哇,我什至不知道 Arrays.asList() 的 ArrayList 实际上是 java.util.ArrayList 之外的另一个 ArrayList。
    • 我也不知道...看来这两种变体在效率上略有不同(至少在我的机器上)。在 1 亿次运行中,第一个变体需要 ~ 1500 ms,第二个变体需要 ~ 900 ms
    猜你喜欢
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 2019-12-06
    • 2021-05-01
    • 1970-01-01
    相关资源
    最近更新 更多