Я обычно сталкиваюсь со сценариями при использовании HashMap в Java следующим образом:У меня есть список объектов класса A (List<A>
)A имеет поля int f1, int f2 и другие поля.
Я должен составить карту из List, чтобы выполнить поиск O (1) для объектов A. Ключ - это сочетание f1 и f2 (обабудучи целыми числами).
Теперь, что из следующего было бы наилучшей практикой для использования на картеслучай 1: в общемслучай 2: f2 может принимать только от 2 до 3 различных значений, в то время как f1 может принимать большое количество значений.
Map<Integer, Map<Integer, List<A>>> // construction of map is cumbersome
Map<String, List<A>> //(key : String f1 + "_" + f2)
Map<Integer, List<A>> //(I tend to use this for case 2)
Пропущено, чтобы прояснить одну вещь здесь.f1 и f2 не однозначно идентифицируют объекты A. Исправлены определения карты.