java Arrays.asList com.google.common.collect.Lists.newArrayList 效率问题
2017-08-24 17:09
681 查看
Arrays.asList(new int[]{goodsId});
Lists.newArrayList(goodsId):com.google.common.collect.Lists
请问这两个哪个效率高一些
理论上应该是:asList效率高,
因为:
Arrays.asList:
第一步:
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
第二步:
ArrayList(E[] array) {
if (array==null)
throw new NullPointerException();
a = array;//此处直接复制地址,耗时几乎为0
}
com.google.common.collect.Lists.newArrayList:
第一步:
public static <E> ArrayList<E> newArrayList(E... elements) {
Preconditions.checkNotNull(elements);
int capacity = computeArrayListCapacity(elements.length);
ArrayList<E> list = new ArrayList(capacity);
Collections.addAll(list, elements);//此处需要添加元素
return list;
}
第二步:
public static <T>boolean addAll(Collection<?
super
T> c, T... elements) {
boolean result =
false;
for (T element : elements)//走for循环了,按理讲应该是耗时间的
result |= c.add(element);
return result;
}
结论:第一个效率高一些,但是第一种无法再添加元素、或者修改元素
Lists.newArrayList(goodsId):com.google.common.collect.Lists
请问这两个哪个效率高一些
理论上应该是:asList效率高,
因为:
Arrays.asList:
第一步:
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
第二步:
ArrayList(E[] array) {
if (array==null)
throw new NullPointerException();
a = array;//此处直接复制地址,耗时几乎为0
}
com.google.common.collect.Lists.newArrayList:
第一步:
public static <E> ArrayList<E> newArrayList(E... elements) {
Preconditions.checkNotNull(elements);
int capacity = computeArrayListCapacity(elements.length);
ArrayList<E> list = new ArrayList(capacity);
Collections.addAll(list, elements);//此处需要添加元素
return list;
}
第二步:
public static <T>boolean addAll(Collection<?
super
T> c, T... elements) {
boolean result =
false;
for (T element : elements)//走for循环了,按理讲应该是耗时间的
result |= c.add(element);
return result;
}
结论:第一个效率高一些,但是第一种无法再添加元素、或者修改元素
相关文章推荐
- Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Lists
- java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet()异常解决思路
- java.util.Arrays.asList 的小问题
- Java-Arrays.asList()使用中的问题
- java.util.Arrays.asList 问题
- java使用List lists = new ArrayList()出错
- java.util.Arrays.asList 的小问题
- java.util.Arrays.asList 的小问题
- java Arrays.asList 问题
- java.util.Arrays.asList 的小问题
- java-集合类-(1)ArrayList,toArray(),Arrays.asList()
- Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function问题解决
- Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function问题解决
- 【软件测试】Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet
- java.util.Arrays.asList 的小问题
- java.util.Arrays.asList 的小问题
- 如何解决sikuli-ide: java.lang.NoClassDefFoundError: com/google/common/collect/MapMaker
- java.util.Arrays.asList 的小问题
- java.util.Arrays.asList 的小问题
- Java中的Arrays.asList(T... a)相关问题