Czy można zmienić nazwę klucza Hashmap?
Szukam sposobu na zmianę nazwy klucza Hashmapowego, ale nie wiem, czy jest to możliwe w Javie.
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);
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");
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.
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
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.
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