Czy można zmienić nazwę klucza Hashmap?

Szukam sposobu na zmianę nazwy klucza Hashmapowego, ale nie wiem, czy jest to możliwe w Javie.

Author: risingTide, 2012-05-26

5 answers

Spróbuj usunąć element i umieścić go ponownie z nową nazwą. Zakładając, że kluczami na mapie są String, można to osiągnąć w ten sposób:

Object obj = map.remove("oldKey");
map.put("newKey", obj);
 95
Author: Alexis Pigeon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-30 11:48:00

Przypisz wartość klucza, który wymaga zmiany nazwy, do nowego klucza. I wyjmij stary klucz.

hashMap.put("New_Key", hashMap.get("Old_Key"));
hashMap.remove("Old_Key");
 12
Author: Deepak Mani,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-18 06:07:50
hashMap.put("New_Key", hashMap.remove("Old_Key"));

To zrobi to, co chcesz, ale zauważysz, że lokalizacja klucza uległa zmianie.

 6
Author: Mohamed Zakaria El-Zoghbi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-30 14:27:45

Nie można zmienić nazwy/zmodyfikować klucza hashmap Po dodaniu.

Jedynym sposobem jest usunięcie / usunięcie klucza i wstawienie nowej pary klucza i wartości.

uzasadnienie : w wewnętrznej implementacji hashmap modyfikator klucza HashMap oznaczony jako końcowy.

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
}

Dla Odniesienia: HashMap

 5
Author: light_ray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-02 02:29:33

Nie zmieniasz nazwy klucza hashmapowego, musisz wstawić nowy wpis nowym kluczem i usunąć stary.

 4
Author: Hari Menon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-26 14:05:18