首页 > 解决方案 > 具有大量空条目的大型数组

问题描述

我正在用 Java 编写一个程序,目前有这一行:

double[][][][][][][][][][][] array = new double[20][10][9][8][5][4][4][3][3][3][2];

但是,这些条目中的大多数将保持为空。当条目从空值更改时,是否有替代使用只会为每个条目分配内存的数组?

标签: javaarrays

解决方案


可以使用映射而不是数组,它只会为每个条目分配。就像是:

public class Key { double d1,d2,d2...d11; (constructor, equals, comparable (if want sorted), hash etc) }

Map<Key, Double> map = new TreeMap<>();

Key key = new Key(20, 10, 9, 8, 5, 4, 4, 3, 3, 3, 2);
map.put(key, 1.0);

推荐阅读