¿Cómo puedo tener un HashMap con claves únicas en Java? O incluso, ¿tiene sentido tener claves únicas en HashMap o las teclas son únicas por defecto? Soy un novato. thx¿Cómo puedo tener un HashMap con claves únicas en java?
Respuesta
Las claves son únicas en todos los mapas. La diferencia entre las diversas implementaciones de mapas se refiere a la posibilidad de claves nulas, el orden de iteración y problemas de concurrencia.
La clave del mapa hash es única. Agregar clave duplicada, luego se sobrescribirá.
HashMap hm = new HashMap();
hm.put("1", new Integer(1));
hm.put("2", new Integer(2));
hm.put("3", new Integer(3));
hm.put("4", new Integer(4));
hm.put("1", new Integer(5));// value integer 1 is overwritten by 5
Por defecto, Hashmap no está sincronizado.
entonces, ¿cómo hacemos que la relación de valor clave no sea única, es decir, quiero también el valor 5 para la clave 1 anterior? ¿Hay algún método para cumplir ese propósito –
@VamsiPavanMahesh, tendrá que almacenar algún tipo de 'Lista' o 'Mapa' para esa 'clave' correspondiente. 'Map
HasMap tiene claves únicas. como .keySet() devuelve Set que tiene miembros únicos
HashMap es una colección para almacenar pares (clave, valor) y De acuerdo con la documentación de HashMap las claves son siempre únicas.
Si agrega una clave que ya existe (colisión) en el hashmap, se reemplazará el valor anterior.
Un hashmap genérico se implementa generalmente como una matriz asociativa, así que supongamos que su matriz tiene N elementos, de 0 a N-1, cuando desea agregar un nuevo par (clave, valor), lo que se hace detrás del escenas es (justo conceptualmente):
- index = almohadilla (clave) N mod
- array [index] = valor
Así, por construcción, una tecla está asignada a una y sólo una entrada de matriz
Tenga en cuenta que en realidad es un poco más complejo que esto: estoy haciendo caso omiso de las cosas de uso como la manipulación de colisión, refrito, etc, que pueden tener una buena idea general https://en.wikipedia.org/wiki/Hash_table
Trate de mirar el Java API for Map cuales es la interfaz que implementa HashMap
. La primera oración es:
Objeto que asigna claves a los valores. Un mapa no puede contener claves duplicadas; cada tecla se puede asignar a un máximo de un valor.
- 1. Obtener claves de HashMap en Java
- 2. ¿Puedo tener HashSets como claves en un HashMap? Sugerir una alternativa si no es
- 3. ¿Por qué puedo usar cadenas como claves en un HashMap?
- 4. Doctrina y claves únicas compuestas
- 5. Java: ¿Buscar en claves HashMap basadas en expresiones regulares?
- 6. ¿Cómo puedo forzar a un diccionario en python a que solo tenga claves únicas?
- 7. Claves únicas en Entity Framework 4
- 8. Java Collection con 2 claves
- 9. ¿hay un iterador entre las claves únicas en std :: multimap?
- 10. Java XStream con HashMap
- 11. Crear un hashmap con una doble clave
- 12. ¿Cómo puedo usar matrices MATLAB como claves para los objetos Java de HashMap?
- 13. Java HashMap o IdentityHashMap
- 14. ¿Cómo puedo ordenar las claves de un mapa en Java?
- 15. Rellenar un hashmap con valores predefinidos (java)
- 16. Eclipse con Java Advertencia HashMap
- 17. ¿Cómo puedo extraer ArrayList de HashMap y recorrerlo en Java?
- 18. ¿Por qué mi HashMap permite duplicar claves?
- 19. Obtener una enumeración (para las claves) de un mapa (HashMap) en Java?
- 20. impresión HashMap En Java
- 21. Propiedades en Java: ¿podemos tener claves separadas por comas con un valor único?
- 22. Java HashMap vs JSONObject
- 23. ¿Puedo tener varias claves principales en una sola tabla?
- 24. Loop Java HashMap like Python Dictionary?
- 25. Amazon S3 creando claves únicas para cada objeto
- 26. Java HashMap elementos duplicados
- 27. HashMap con ~ 100 millones de claves, ¿aún tiempo constante?
- 28. Servlet. ¿Cómo obtener los parámetros si sus claves no son únicas?
- 29. Cambio de claves HashMap durante la iteración
- 30. Error en CF9: valores para las claves struct únicas referenciadas y sobreescritas por otras claves
Las llaves _son_ únicas por defecto. Tenga en cuenta que '.keySet()' en un 'Map' devuelve un' Set', y los elementos de un 'Set' son únicos por defecto. Si intenta insertar un valor en una clave existente, se sobrescribirá el valor anterior. – fge
tenga en cuenta que "único" en Java significa igual en términos de implementación de los métodos iguales y hashcode! – Hachi