2010-04-17 10 views

Odpowiedz

4

Brak wbudowanej kolekcji multimap w Javie. Aby rozwiązać ten problem, możesz mapować do każdego klawisza listę wartości: na przykład Map<String, List<String>>. W przeciwnym razie istnieją niezależne biblioteki z zaimplementowanymi multimiapami - jednym z nich jest here.

7

Możesz zajrzeć do Google Collections. Ma wiele implementacji dla MultiMap.

+2

W szczególności. Klasa TreeMultimap kolekcji Zbiorów Zbiorowych zawiera metodę asMap() zwracającą SortedMap. Następnie możesz wywołać metody takie jak SortedMap.subMap() w celu pobrania odwzorowań dla zakresu kluczy. –

+2

Kolekcje Google to teraz [Guava] (http://code.google.com/p/guava-libraries/) – Muhd

1

Istnieje prosty hack do tworzenia kolekcji multimap sortable w java ... Użyj dataset TreeMap i dla klawiszy wprowadź klucz * 10^4 + licznik. W ten sposób przechowujesz zduplikowane wartości kluczy na mapie (przez dodanie licznika nie są one faktycznie duplikatami, więc możesz przechowywać je w treeMap, ale wiesz, że nie używasz ostatnich czterech cyfr wartości liczby całkowitej), ale twój zestaw danych jest sortowane przy użyciu oryginalnych wartości kluczy. Zauważ, że w zależności od tego, jak duży jest twój zestaw danych, możesz dostosować 10^n, aby upewnić się, że jest większy niż liczba wpisów w danych.

Powiązane problemy