Ho una Hashmap che può contenere caratteri jolly (*) nella stringa.Restituzione di un elenco di corrispondenze di caratteri jolly da una HashMap in java
Per esempio,
HashMap<String, Student> students_;
può avere John * come una chiave. Voglio sapere se JohnSmith corrisponde a qualsiasi elemento negli studenti_. Potrebbero esserci più corrispondenze per la mia stringa (John *, Jo * Smith, ecc.). C'è un modo per ottenere una lista di queste partite dalla mia HashMap?
C'è un altro oggetto che potrei usare che non mi richiede di scorrere tutti gli elementi della mia collezione, o devo succhiarlo e usare un oggetto List?
FYI, la mia raccolta conterrà meno di 200 elementi e alla fine voglio trovare la coppia che corrisponde alla minor quantità di caratteri jolly.
funzioni di hashing, in generale, sono costruiti in modo che le modifiche minori (ad es: 'John SmitH' a' John Smith') producono hash totalmente diversi. – NullUserException
Perché non vuoi iterare? Non è poi così male (specialmente con meno di 200 elementi), e in definitiva qualsiasi altra soluzione probabilmente implicherà qualcosa di simile in termini di prestazioni. – Guillaume
A meno di 200 elementi, basta eseguire la ricerca lineare su 'entrySet()' e valutare il carattere jolly per ogni chiave.Se fosse stato molto di più, avrei suggerito un database (incorporato) e una query 'LIKE'. –