在 Java 中使用超过 20 亿个元素的大数组

Den*_*gin 3 java arrays limit bigdata

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

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

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

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

Hit*_*bat 6

我推荐fastutil库。我主要将它用于节省空间的 Java 集合(在内部使用原始数组),但也有一节介绍了用于包含元素的集合的大数据结构> 2^31