Я согласен с ChrisJ , что ваш двумерный массив совсем не плох.
Вы можете иметь карту карты, например
Map<Integer, Map<Integer, Integer>> myMap;
Но это может стать еще страшнее, чем ваша идея с двумерным массивом.
Кроме того, вы можете преобразовать два ключа int в один ключ String, например
Map<String, Integer> myMap = new HashMap<String, Integer>();
int key1 = 3;
int key2 = 4;
int value = 25;
myMap.put(key1 + "/" + key2, value);
Но я рекомендую использовать решение, которое у вас есть, если вы можете гарантировать, что наибольшее значение для любой клавиши равно 255.