Если у вас было 1 000 000 ключей (целых), которые сопоставлены с 10 000 значений (целых).Какой наиболее эффективный способ (производительность поиска и использование памяти) реализовать.
Предположим, что ключи не известны заранее и не являются непрерывными.Предположим, что значения случайные.т. е. не существует диапазона ключей, которые сопоставляются одному значению.
Самый простой подход, который я могу придумать, - это HashMap, но я задаюсь вопросом, можно ли добиться большего успеха, сгруппировав ключи, соответствующие одному значению.
Map<Integer,Integer> largeMap = Maps.newHashMap();
largeMap.put(1,4);
largeMap.put(2,232);
...
largeMap.put(1000000, 4);
Примечание. Это похоже на мой предыдущий вопрос ( Отображение большого набора ключей на небольшой набор значений ), однако разница здесь в том, что ключи не являются непрерывными.