Mam mapę Hashmap, która może zawierać znaki wieloznaczne (*) w ciągu znaków.Zwracanie listy dopasowań symboli wieloznacznych z HashMap w java
Na przykład
HashMap<String, Student> students_;
może mieć John * jako jeden klucz. Chcę wiedzieć, czy JohnSmith pasuje do jakichkolwiek elementów w studentach. Może być kilka dopasowań dla mojego ciągu (John *, Jo * Smith, itp.). Czy istnieje sposób, aby uzyskać listę tych meczów z mojego HashMap?
Czy istnieje inny obiekt, który mógłbym użyć, który nie wymaga od mnie przechodzenia przez każdy element w mojej kolekcji, czy muszę go ssać i używać obiektu List?
FYI, moja kolekcja będzie zawierała mniej niż 200 elementów, a docelowo będę chciał znaleźć parę pasującą do najmniejszej liczby symboli wieloznacznych.
funkcje mieszaja w ogóle są skonstruowane w taki sposób, że drobne zmiany (np: '' John SmitH' do John Smith') dają całkowicie różne hasze. – NullUserException
Dlaczego nie chcesz iterować? To nie jest takie złe (szczególnie w przypadku mniej niż 200 elementów), a ostatecznie każde inne rozwiązanie będzie prawdopodobnie obejmować coś podobnego pod względem wydajności. – Guillaume
Przy mniej niż 200 elementach, po prostu wykonaj liniowe przeszukiwanie przez 'entrySet()' i oceń swój symbol wieloznaczny na każdy klucz.Gdyby to było znacznie więcej, zasugerowałbym (wbudowaną) bazę danych i zapytanie "LIKE". –