myślę krótka odpowiedź brzmi: nie, nie ma oczywisty odpowiednik.
Przyspieszona klasa wielu indeksów jest bardzo silnie szablonowana, co nie jest łatwe do przetłumaczenia w Javie. Są generyczne, ale wcale nie są takie same. (How are Java generics different from C++ templates? Why can't I use int as a parameter?).
A więc bez szablonów, jak wyglądałaby klasa z wieloma wskaźnikami?
Wyobrażam sobie, że masz swoją klasę danych, np. Osoba, zawierająca elementy indeksu, takie jak implementacja mapy. W tym momencie, masz wybór:
- Dodaj jakieś „indeksy” bezpośrednio do klasę osobę (jak jakiś Hashtables) i napisać Lookup funkcje. Zarządzaj synchronizacją indeksu w klasie Osoba .
- napisz „IndexProvider” klasy że oddziela funkcjonalność indeksu całkowicie od osoby - musiałby być w stanie dynamicznie tworzyć różne typy indeksów i wyobrażam sobie byś synchronizacji uchwytu poprzez wywołań zwrotnych.
- Niektóre mieszanka 1) i 2) - jak klasy abstrakcyjne bazowy indeks funkcjonalności, która nie właściwie oddzielić zachowania ale daje pewne ponowne wykorzystanie kodu.
Myślę, że w większości przypadków 1) jest najłatwiejszy do napisania, najłatwiejszy do utrzymania i prawdopodobnie najbardziej wydajny. 2) wydaje się nadmiernym inżynierią.
Inną opcją, jeśli masz wiele struktur danych, które wymagają indeksowania, jest przechowywanie ich w bazie danych.
może być przesadą (stąd komentarzu), czy za wbudowany DB do tego? Istnieje wiele lekkich DB, które można osadzić i uruchomić w pamięci, myślę, że to zależy od wymagań wydajnościowych. – Nim