Equals e hashcode li ho implementati nella classe Vertice, ovvero oggetti che sono sia chiavi sia valori. Ma per le hash c'è una funzione che permette l'accesso diretto a una chiave?
Equals e hashcode li ho implementati nella classe Vertice, ovvero oggetti che sono sia chiavi sia valori. Ma per le hash c'è una funzione che permette l'accesso diretto a una chiave?
Caso generale: quando fai un "lookup" (attenzione: non inserimento) sulla mappa (con containsKey, get, remove, ecc...), l'oggetto che passi come chiave al metodo può anche essere, ovviamente, distinto dall'oggetto che è davvero contenuto come chiave nella mappa. Questo perché vengono usati hashCode/equals per trovare la chiave, quindi alla fine si basa sulla uguaglianza di contenuto della chiave. Pertanto se vuoi ri-avere esattamente QUEI oggetti chiave che sono nella mappa, allora o li hai tenuti altrove per conto tuo .. oppure devi fare una iterazione sul set delle chiavi o delle entry.
Caso tuo specifico: se dici che hai oggetti vertice che usi come chiave e valore, se uno STESSO oggetto vertice lo hai usato come chiave e come valore in una (o più) delle liste, allora la chiave la puoi ritrovare anche appunto tra le liste.
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet