Мне было интересно, если бы был более эффективный способ добавить элемент в список внутри хэш-карты вместо того, чтобы делать копию списка, добавляя этот элемент в список копирайтеров, а затем сделать положить внутрь карты с определенным ключом, связанным к списку перезаписать эту карту часть расположения ...Java: добавьте элемент в список внутри HashMap
Map <Integer, List<Object>> myMap = new HashMap <Integer, List<Object>>();
....add function
List <Object> tmp = new LinkedList();
if (myMap.containsKey(myListKey.hashCode())) { //keycheck
tmp = myMap.get(myListKey.hashCode()); //copy
tmp.add(myObjectToAdd); //add
myMap.put(myListKey.hashCode(), tmp); //overwrite
}
Я попробовал несколько способов, чтобы получить прямой доступ к внутреннему списку, но компилятор, кажется, на ее/его период сегодня ...
Почему вы используете 'hashCode()' как ключ? Это просто * прошу * за неприятности. И что заставляет вас думать, что ваш текущий код * копирует * список вообще? Это просто выборка ссылок. (Вам не нужно 'put' в конце ...) Время узнать больше о хэш-кодах и ссылках, IMO. –