値は、Java 8のスタイルで存在している場合はHashMapから削除する方法

VextoR:

ありますMap<String, List<String>>私はから値を削除したいList場合はMap、キーが含まれています。

しかし、それを行うための方法があるのJava 8のスタイルは?多分、コンピューティング、マージまたは他のいくつかの新しいメソッドを使用してような?

古いスタイルの方法で、リストから要素を削除するためのコード:

public class TestClass {


    public static void main(String[] args) {
        Map<String, List<String>> map = new HashMap<>();
        map.put("key1", getList());
        map.put("key2", getList());

        //remove
        if (map.containsKey("key1")) {
            map.get("key1").remove("a2");
        }
        System.out.println(map);
    }

    public static List<String> getList(){
        List<String> arr = new ArrayList<String>();
        arr.add("a1");
        arr.add("a2");
        arr.add("a3");
        arr.add("a4");

        return arr;
    }   
}
チャールズDowbecki:

あなたは使用することができますMap.computeIfPresent()が、改善は疑問です。

map.computeIfPresent("key1", (k, v) -> { v.remove("a2"); return v; });

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=182984&siteId=1