Java 嵌入另一个地图的地图的初始化

Java initialization of a map embedded within another map

下午好:

我最近创建了一个 class 'X',它包含一个属性 "network",它被定义为一个映射,它使用一个字符串作为键,另一个映射作为值(双图)。对于此 class,将使用 "hashmap" 实现。

class 大致如下所示:

public class X {
    private Map<String, Map<String, Integer>> network;   //Attribute

    public X() {        
        network = new HashMap<>();    //An empty map is created
    }

    public int method1 {
        String string = "sentence"; 
        int number = 2; 
        String string2 = "another";
        network.put(string, <string2, number>);    //NOT WORKING - wrong syntax/wrong initialization?
    }    
}

然而,当我执行函数中包含的network.put指令时,编译器自动检测到一个错误:"Expression expected"。如果可能的话,我想知道是我在向地图中添加新的键值元素时使用了错误的语法,还是地图的初始化导致了错误。

非常感谢所有帮助。 谢谢。

您需要做的:

public class X {
    private Map<String, Map<String, Integer>> network;   //Attribute

    public X() {        
       network = new HashMap<>();    //An empty map is created
    }
    public int method1() {
      String string = "sentence"; int number = 2; String string2 = "another";
      Map<String, Integer> map = new Hashmap<>();
      map.put(string2, number);
      network.put(string, map) ; 
    }
 }

思路是创建并初始化一个新的HashMap。然后向其中添加键值对。最后将地图插入封闭地图。