我需要将坐标标记为在大型二维坐标系中访问的坐标。开始时,所有坐标均为假(无法访问)。在正在运行的应用程序的生命周期内,只有一小部分坐标会通过。
我想将此信息存储在2维布尔数组中。
Boolean[][] booleans = new Boolean[200000][200000];
但是,这当然会抛出Java堆空间。
因为99.9%的结果都是假的,是否有另一种方法可以将数据存储在多维数组中,所以只有真正的值才需要内存?
答案 0 :(得分:1)
您可以使用Set<Pair>
(其中Pair
是POJO)
private int x;
private int y;
此集合仅存储带有true
的值,因此,如果列表不包含Pair(x, y)
,则表示它是错误的。