Ho una classe con diversi elenchi di valori-chiave. Ogni chiave (all'interno di una lista) dovrebbe essere unica, quindi uso HashMap. Quando da qualche parte nel codice aggiungo un nuovo elemento a un elenco, sto usando lo put(K, V)
di HashMap. Mi piacerebbe che il mio codice generasse un'eccezione se si tenta di aggiungere un elemento con una chiave già esistente. E, poiché tale aggiunta viene eseguita in molti punti del programma, vorrei evitare di aggiungere il controllo in ognuno di essi. Quindi dovrebbe essere la classe list stessa che non consentirebbe di sostituire la coppia chiave-valore esistente.HashMap con controllo di univocità
Ho pensato di estendere la classe HashMap con la mia, che eseguiva tale controllo e generava un'eccezione. Tuttavia, lo put
di HashMap non genera eccezioni, quindi non posso farlo neanche io.
Quale sarebbe un buon approccio per ottenere tale comportamento? Sono pronto a sostituire HashMap con qualcosa di meglio, ma ho bisogno che sia veloce sia nell'aggiunta che nel recupero degli oggetti.
Aggiornamento: Grazie a tutti per molti suggerimenti. Dato che sono un novizio completo in Java, ora ho bisogno di imparare molto per essere in grado di scegliere il migliore :) Comunque, sono grato per aver ottenuto così tante opzioni in una pausa pranzo!
Le raccolte Commons non hanno l'esposizione che merita ... – Isaac