gpt4 book ai didi

java - Java 中是否有比 int 更长的列表?

转载 作者:行者123 更新时间:2023-12-02 08:21:17 26 4
gpt4 key购买 nike

我似乎找不到最大长度为 long 最大值的 Java List

这样的List存在吗?

如果是的话,在哪里?

最佳答案

正如 @afsantos 所说,由于 Java 数组的限制,ArrayList 类本质上仅限于 Integer.MAX_VALUE 条目。

LinkedList 没有这个限制,但它(尽管如此)很昂贵:

  • 每个条目都会产生 2 个引用加上对象头大小的内存开销……相比之下,基于数组的表示只需要一个引用。

  • 与基于数组的列表的 O(1) 操作相比,索引是一个 O(N) 操作。

这里是 Java 库的链接,该库使用直接映射内存和/或元素编码来支持巨大内存中集合:

这里是一个巨大集合库的链接,其中包含一个 ArrayList 模拟,它使用 2 级数组(数组的数组)来避免 32 位地址限制。

可能还有其他替代方案。

人们还可以设想常规数组列表的“大”变体,它使用数组的数组而不是单个数组。但是,如果允许插入到列表的中间,则实现 O(1) 查找会变得困难/昂贵。 (这可能就是为什么我无法通过 Google 找到示例的原因...)

关于java - Java 中是否有比 int 更长的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371877/

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