如何在一行上初始化 Map<K, Map<K,V>>

Mis*_*ell 1 java dictionary

是否可以将这两行代码合二为一?

    allPeople.put("Me", new HashMap<String, String>());
    allPeople.get("Me").put("Name", "Surname");
Run Code Online (Sandbox Code Playgroud)

And*_*ner 5

这两行的字面替换将是(在 Java 8+ 中):

allPeople.compute("Me", (k, v) -> new HashMap<>()).put("Name", "Surname");
Run Code Online (Sandbox Code Playgroud)

或者,按照Bax 的回答风格,对于 Java 9 之前的版本,您可以使用:

allPeople.put("Me", new HashMap<>(Collections.singletonMap("Name", "Surname")));
Run Code Online (Sandbox Code Playgroud)