gpt4 book ai didi

java - 什么是 Java 中大型列表的最佳列表实现

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:24 24 4
gpt4 key购买 nike

我必须创建一个包含 n 个元素的大列表(可能多达 100,000 个)。列表中的每个元素都是一个整数,相当于列表的索引。在此之后,我必须在此列表上调用 Collections.shuffle。我的问题是,应该使用哪个列表实现(java 集合或 apache 集合)。我的直觉是 ArrayList 可以在这里使用。所有的想法都值得赞赏。谢谢!

感谢您的投入。我想我坚持使用 ArrayList。我目前正在使用带有 initialCapacity 参数的 ArrayList 构造函数,并且我传递了列表的大小。因此,如果原始列表是 100000,我将使用 new ArrayList(100000); 创建这个新列表。因此我认为我没有创建数组并执行 asList 因为不会有任何调整大小。此外,大多数 apache 集合列表如 GrowthList 和 LazyList 不实现 RandomAccess。这肯定会减慢洗牌速度(根据 javadocs)。 FastArrayList 确实实现了 RandomAccess,但是 apache 对这个类有一个注释说“这个类不是跨平台的。使用它可能会在某些架构上导致意外的失败”。

最佳答案

ArrayList 很可能每个列表元素的开销最少,因此应该是最佳选择。如果您经常需要删除列表中间的项目,这可能是一个更糟糕的选择。

关于java - 什么是 Java 中大型列表的最佳列表实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com