4

下面的代码是从 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;
}

容量变量应该是什么意思?提前致谢!

4

2 回答 2

2

这些集合在内部使用固定数组来保存数据。“容量”是数组可以容纳的初始元素数。当您添加的元素超过当前容量时,必须扩展内部数组。这是一项耗时的操作,初始容量会在您知道将添加多少元素时提供帮助。

于 2012-03-23T19:35:41.183 回答
1

这是 ArrayList 类的一部分。预先设置容量可以防止大型列表在填充时不得不逐渐增加它们的大小,而是立即分配所需的空间。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html

于 2012-03-23T19:33:23.727 回答