android - Android google io 2011 java源代码中的MAGIC number

标签 android collections open-source capacity googleio

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

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

最佳答案

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

关于android - Android google io 2011 java源代码中的MAGIC number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845363/

相关文章:

c# - C# 的 SortedBag<T>

ruby - 开源项目中的版本控制礼仪?

java - 无法以编程方式连接到蓝牙设备

android - 安装或更新应用后显示模式

java - 使用具有多个条件的比较器对列表进行排序。先进先出

java - Spring Cloud zuul/刷新抛出500错误

c++ - 为什么我不能运行从源代码构建的 AssaultCube?

java - 如何在/system中写入文件(Android)

android - 不要混淆混淆器中的硬编码字符串

java - java集合接口(interface)中的继承