【问题标题】:Working with larger that 2 billion elements big-arrays in Java在 Java 中处理超过 20 亿个元素的大数组
【发布时间】:2018-05-11 20:39:40
【问题描述】:

我经常不得不使用 Java 中的大型数组,不断测试 ~2B 元素的限制。

有没有一种方便的方法来处理更大尺寸的数组?我需要的操作列表:

  • 创建一个新数组;
  • 设置/获取第i个元素;
  • 通过分配一个更大的新数组并复制旧数组的内容来扩展数组;
  • 将另一个数组(相当小的

P.S. 看来这个问题已经被很多工程师考虑过了。可以在以下位置找到带有参考的好文章:https://www.nayuki.io/page/large-arrays-proposal-for-java

【问题讨论】:

  • 您可以尝试使用 2D 数组,例如 int[2][1B] 而不是 int[2B] 或使用 List
  • 试试 fastutil 库。
  • @Hitobat 感谢您的参考。这正是我想要的!
  • @Hitobat 将我的代码移植到 fastutil 库,它的工作原理就像一个魅力!我希望您将您的评论转化为答案。
  • 我已经按照@DenisKulagin 的要求转换了评论,谢谢。

标签: java arrays bigdata limit


【解决方案1】:

我推荐fastutil 库。我主要将它用于节省空间的 Java 集合(在内部使用原始数组),但还有一个关于 Big data structures 的部分用于具有 > 2^31 元素的集合。

【讨论】:

    猜你喜欢
    • 2013-09-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2019-03-11
    • 2013-01-19
    • 2010-10-27
    相关资源
    最近更新 更多