下面的代码取自google io开源。
com.google.android.apps.iosched.util.Lists.java http://code.google.com/p/iosched/source/browse/android/src/com/google/android/apps/iosched/util/Lists.java
public static <E> ArrayList<E> newArrayList(E... elements) {
int capacity = (elements.length * 110) / 100 + 5;
ArrayList<E> list = new ArrayList<E>(capacity);
Collections.addAll(list, elements);
return list;
}com.google.android.apps.iosched.util.Sets.java http://code.google.com/p/iosched/source/browse/android/src/com/google/android/apps/iosched/util/Sets.java
public static <E> HashSet<E> newHashSet(E... elements) {
int capacity = elements.length * 4 / 3 + 1;
HashSet<E> set = new HashSet<E>(capacity);
Collections.addAll(set, elements);
return set;
}容量变量应该是什么意思?提前感谢!
发布于 2012-03-24 03:35:41
这些集合在内部使用固定数组来保存数据。"capacity“是数组可以容纳的元素的初始数量。当您添加的元素多于当前容量时,必须扩展内部数组。这是一个耗时的操作,如果您知道将添加多少元素,则初始容量将尝试提供帮助。
发布于 2012-03-24 03:33:24
这是ArrayList类的一部分。预先设置容量可以防止大型列表在填充时必须逐渐增加其大小,而是立即分配所需的空间。
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html
https://stackoverflow.com/questions/9845363
复制相似问题