java - 数据太大,无法进行 int 索引

标签 java data-structures

假设我正在研究大数据(如生物信息学),并且我选择使用 HPC 上出色的 Collections Map-Reduce 框架在 Java 中分析它。如何处理超过 2 31 ^ 1 - 项目的数据集?例如,

final List<Gene> genome = getHugeData();
profit.log(genome.parallelStream().collect(magic);

最佳答案

包装您的数据,使其由许多 block 组成——一旦超过 2 ^ 31 - 1,您将进入下一个。草图是:

class Wrapper {
  private List<List<Gene>> chunks;
  Gene get(long id) {
    int chunkId = id / Integer.MAX_VALUE;
    int itemId = id % Integer.MAX_VALUE;
    List<Gene> chunk = chunks.get(chunkId);
    return chunk.get(itemId);
  }
}

关于java - 数据太大,无法进行 int 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24810675/

相关文章:

c - 在链表末尾插入

Matlab:我可以通过唯一名称引用数组索引吗?

java - Java的PriorityQueue构造函数调用和addAll方法的区别

java - 如何在 Spring Boot 中从单个 Controller 返回内容数据和页面名称

Java PriorityQueue 首先返回最少的元素

java - 使用带有 hdbc 的 spring security 3.0 逐步登录示例

java - Map中的Json对象,在java中如何获取它?

algorithm - 在广度优先搜索和深度优先搜索中为什么访问的数组是全局初始化的

java - java中的数学分数计算

java - 设置 M2_HOME