有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在一个大的二维数组中存储布尔值

我需要在一个大的二维坐标系中标记坐标。开始时,所有坐标都为false(未访问)。在运行应用程序的生命周期内,只传递一小部分坐标

我想把这些信息存储在一个二维布尔数组中

Boolean[][] booleans = new Boolean[200000][200000];

但这当然会带来Java堆空间

因为99,9%永远都是假的,有没有其他方法可以将数据存储在多维数组中,所以只有真值需要内存


共 (1) 个答案

  1. # 1 楼答案

    可以使用Set<Pair>,其中Pair是POJO,带有:

    private int x;
    private int y;
    

    这个集合只存储带有true的值,所以如果列表不包含Pair(x, y),这意味着它是false