Java >> Java Tutorial >  >> Tag >> HashMap

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

Java-Tag