java - 具有大量空条目的大型数组
问题描述
我正在用 Java 编写一个程序,目前有这一行:
double[][][][][][][][][][][] array = new double[20][10][9][8][5][4][4][3][3][3][2];
但是,这些条目中的大多数将保持为空。当条目从空值更改时,是否有替代使用只会为每个条目分配内存的数组?
解决方案
可以使用映射而不是数组,它只会为每个条目分配。就像是:
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);