So fügen Sie ein Element zu ArrayList in HashMap hinzu
Ich weiß, das ist eine alte Frage. Aber nur der Vollständigkeit halber die Lambda-Version.
Map<String, List<Item>> items = new HashMap<>();
items.computeIfAbsent(key, k -> new ArrayList<>()).add(item);
HashMap<String, ArrayList<Item>> items = new HashMap<String, ArrayList<Item>>();
public synchronized void addToList(String mapKey, Item myItem) {
List<Item> itemsList = items.get(mapKey);
// if list does not exist create it
if(itemsList == null) {
itemsList = new ArrayList<Item>();
itemsList.add(myItem);
items.put(mapKey, itemsList);
} else {
// add if item is not already in list
if(!itemsList.contains(myItem)) itemsList.add(myItem);
}
}
Zuerst müssen Sie der Map eine ArrayList hinzufügen
ArrayList<Item> al = new ArrayList<Item>();
Items.add("theKey", al);
dann können Sie der ArrayLIst, die sich in der Map befindet, ein Element wie folgt hinzufügen:
Items.get("theKey").add(item); // item is an object of type Item