Jeśli Twoje identyfikatorów nie są unikalne, nadal można używać Mapa:
Map<Integer, String> map = new IdentityHashMap<Integer, String>();
map.put(new Integer(1), "string");
IdentityHashMap - używać ojczystego hashCode implementacja dla każdego obiektu, dzięki czemu nie trzeba unikalne identyfikatory, b ut MUSISZ stworzyć WSZYSTKIE liczby całkowite za pomocą operatora 'nowy', i nie używaj autoboxingu, ponieważ jest tam pewna liczba cache mechanism.
Istnieje również parametr JVM, który kontroluje rozmiar pamięci podręcznej "-XX: AutoBoxCacheMax =". Ale używając tego parametru nie można wyłączyć pamięci podręcznej, jeśli ustawisz rozmiar na zero, pamięć podręczna zignoruje go i użyje wartości domyślnej: [-128; 127]. Ten parametr jest tylko dla liczb całkowitych, nie ma takiego rodzaju parametru dla Long.
UPDATE także dla niezarejestrowanych unikatowych kluczy można użyć jakiegoś multimapy: Mapa> Mapa
i przechowywać w nim twoje wartości z kluczami nieunikatowe:
map.put(1, new ArrayList<String>());
map.get(1).add("value1");
map.get(1).add("value2");
Można użyć HashMap w tym na przykład.
Można również znaleźć implementację MultiMap w google-collections: "guava".
Jeśli identyfikatory są unikatowe, użyj hashap HashMap else utwórz nową klasę, która na liście może zawierać –