Ktoś wie, czy Guava ma odpowiednik w wersji Functionaljava HashMap?Czy guava ma implementację Map, która wykorzystuje niestandardowe funkcje hash/equals?
Odpowiedz
O ile wiem, nie.
Ale można owinąć wszystkie klucze w Equivalence.Wrapper
przypadkach stosując strategię Equivalence
co potrzeba:
Equivalence<K> equiv = ...
Map<Equivalence.Wrapper<K>, V> map = ...
map.put(equiv.wrap(key), value);
Oczywiście to oznacza, że trzeba dodatkowy przedmiot dla każdego wpisu w mapie. Myślę więc, że wdrożenie mapy, takie jak Ty, byłoby przyjemne.
Zdaję sobie sprawę, że jesteś nie pytając o to konkretnie, tak tu idzie:
Jeśli tylko chcesz to Map
z funkcją zwyczaj równoważności może być w stanie osiągnąć to samo za pomocą standardowego TreeMap
które ma zwyczaj Comparator
.
Dzięki, to było właśnie to Szukałem, ale ponieważ tak naprawdę nie jest to odpowiedź na pytanie, zdecydowałem się przyjąć drugą. – ebaxt
Bez problemu. Cieszę się, że mogłem pomóc :) – Johannes
Po prostu nie oczekuj, że wszystko zadziała poprawnie, jeśli to zrobisz, jak wyjaśniono w javadocs TreeMap. –
Zażądałem [Zestawy/Mapy na podstawie ich odpowiedników] (http://code.google.com/p/guava-libraries/issues/detail?id=576), ale zostały one odrzucone. –