Estoy buscando una manera de cambiar el nombre de una clave Hashmap, pero no sé si es posible en Java.¿Es posible cambiar el nombre de una clave Hashmap?
Respuesta
Intenta eliminar el elemento y ponlo de nuevo con el nuevo nombre. Suponiendo que las llaves en su mapa se String
, se podría lograr de esa manera:
Object obj = map.remove("oldKey");
map.put("newKey", obj);
+1. Y lo más simple de leer es 'map.put (" newKey ", map.remove (" oldKey "));' y provisto contiene 'oldKey' –
En lo que respecta a la legibilidad, no estoy de acuerdo. Personalmente, prefiero ver claramente que un objeto se elimina del mapa y luego se agrega. Y dado que el OP parece ser bastante nuevo en Java, decidí ponerlo de esa manera. Por el bien del rendimiento, sin embargo, su versión es, por supuesto, preferida (ya que no creo que el compilador optimice mi versión a su manera). –
Para javac 1.8.0_45, la versión de una línea tiene dos códigos de byte más cortos, lo que me sorprendió. Más irritante con los genéricos no se puede pasar 'obj' a' put' sin emitirlo o declararlo como otro tipo, pero por supuesto, pasar el resultado de 'remove' funciona directamente. –
No cambia el nombre de una clave hashmap, tiene que insertar una nueva entrada con la nueva clave y eliminar la anterior.
asignar el valor de la clave, que necesita ser cambiado de nombre, a una clave nueva. Y elimina la llave antigua.
hashMap.put("New_Key", hashMap.get("Old_Key"));
hashMap.remove("Old_Key");
no puede renombrar/modificar el HashMap clave vez añadido.
La única manera es eliminar/eliminar la clave e insertar la nueva clave y el par de valores.
Razón: En aplicación interna HashMap el modificador de la tecla Hashmap marcado como final.
static class Entry<K ,V> implements Map.Entry<K ,V>
{
final K key;
V value;
Entry<K ,V> next;
final int hash;
...//More code goes here
}
Para Referencia: HashMap
hashMap.put("New_Key", hashMap.remove("Old_Key"));
Esto va a hacer lo que quiere, pero se dará cuenta de que la ubicación de la clave ha cambiado.
@Vins revise la documentación por favor: D, remove() devolverá el objeto, mira esto https://www.tutorialspoint.com/java/util/hashmap_remove.htm –
mi mal, he eliminado mi comentario y lo he votado. Lo siento por eso. – Vins
- 1. ¿Es posible cambiar el nombre de una tabla en Firebird?
- 2. MakeCert - ¿Es posible cambiar el tamaño de la clave?
- 3. ¿Es posible crear una cola para el conjunto de HashMap?
- 4. Cambiar el nombre de una clave en el diccionario
- 5. Cambiar el nombre de la clave de una entidad
- 6. ¿Cómo cambiar el nombre de una clave en NSMutableDictionary?
- 7. Crear un hashmap con una doble clave
- 8. java HashMap iteración clave
- 9. ¿Es posible cambiar el nombre de una columna unida durante una unión interna?
- 10. ArrayList como clave en Hashmap
- 11. ¿Es posible cambiar el nombre de una instancia de SQL Server 2005?
- 12. Actualización de Java HashMap clave
- 13. Cambiar el nombre de columnas de clave externa en MySQL
- 14. ¿Es posible cambiar el tamaño de una tubería con nombre en Linux?
- 15. ¿Es posible cambiar el color de ScrollBar?
- 16. Dada una clave privada, ¿es posible derivar su clave pública?
- 17. Java HashMap Quitar clave/valor
- 18. ¿Es posible cambiar el nombre de un archivo atómico (con sobreescritura) en Windows?
- 19. obtener el valor de cadena de HashMap dependiendo del nombre de la clave
- 20. ¿Cómo cambiar el nombre de la clave externa?
- 21. ¿Es posible cambiar el nombre del modelo en el sitio de administración de django?
- 22. ¿Es el nombre una palabra clave especial en PostgreSQL?
- 23. Comprobación de existencia de clave en HashMap
- 24. ¿Es posible cambiar el dialecto regexp vim?
- 25. ¿Es posible cambiar el título Eclipse
- 26. Java HashMap: ¿Cómo obtener una clave y valor por índice?
- 27. ¿Es posible cambiar P4TICKET dentro de P4Eclipse?
- 28. ¿Es posible cambiar el nombre de visualización del paquete según el país?
- 29. ¿Es posible obtener elemento de HashMap por su posición?
- 30. ¿Es posible crear un HashMap que sea Parcelable en Android?
Dios mío, espero que no. Eliminar y volver a ingresar el par de clave/valor parece ser el camino a seguir. Tenga en cuenta que normalmente solo maneja las referencias en el mapa de todos modos. –
¡No modifique la clave de una entrada hash! Si tienes suerte, lo cambiarás por algo con el mismo código hash y te volverás loco tratando de descubrir qué sucedió; si no tiene suerte, terminará con una entrada que no se puede encontrar (bueno, no hasta la próxima reconstrucción de toda la tabla). Quitar/reinsertar es mucho más saludable, y debería ser bastante barato (después de todo, son referencias). –