Lo primero que debe saber es que HashSetactúa como a Set, lo que significa que agrega su objeto directamente HashSety no puede contener duplicados. Simplemente agrega tu valor directamente HashSet.
Sin embargo, HashMapes un Maptipo. Eso significa que cada vez que agrega una entrada, agrega un par clave-valor.
En HashMappuede tener valores duplicados, pero no claves duplicadas. En HashMapla nueva entrada se reemplazará la anterior. La entrada más reciente estará en el HashMap.
Comprender el enlace entre HashMap y HashSet:
Recuerde, HashMapno puede tener claves duplicadas. Detrás de la escena HashSetusa a HashMap.
Cuando intentas agregar cualquier objeto a HashSet, esta entrada se almacena realmente como una clave en HashMapel mismo, HashMapque se usa detrás de escena HashSet. Dado que este subyacente HashMapnecesita un par clave-valor, se genera un valor ficticio para nosotros.
Ahora, cuando intente insertar otro objeto duplicado en el mismo HashSet, nuevamente intentará insertarlo como una clave en la HashMapmentira debajo. Sin embargo, HashMapno admite duplicados. Por lo tanto, HashSetseguirá teniendo como resultado un solo valor de ese tipo. Como nota al margen, para cada clave duplicada, dado que el valor generado para nuestra entrada en HashSet es un valor aleatorio / ficticio, la clave no se reemplaza en absoluto. se ignorará como eliminar la clave y volver a agregar la misma clave (el valor ficticio es el mismo) no tendría ningún sentido.
Resumen:
HashMappermite duplicar values, pero no keys.
HashSetno puede contener duplicados.
Para jugar si la adición de un objeto se completó con éxito o no, puede verificar el booleanvalor devuelto cuando llama .add() y ver si regresa trueo false. Si regresó true, se insertó.
HashMappara ver sikeyya existe antes de llamarputal respaldomap?