Map<Integer,Map<String,String>> 两层 如何循环取到里层map的key value值
时间: 2023-11-18 07:09:24 浏览: 170
可以使用两个for循环分别遍历外层和内层map,代码示例如下:
```
for (Integer key : map.keySet()) {
Map<String, String> innerMap = map.get(key);
for (String innerKey : innerMap.keySet()) {
String innerValue = innerMap.get(innerKey);
// 处理内层map的key和value
}
}
```
相关问题
Map<Map<Integer,String>,List<String>> map = new HashMap<>();怎么往里面插入值
可以通过以下方式往这个嵌套的 Map 中插入值:
```
Map<Integer, String> innerMap = new HashMap<>();
innerMap.put(1, "value1");
innerMap.put(2, "value2");
List<String> list = new ArrayList<>();
list.add("element1");
list.add("element2");
map.put(innerMap, list);
```
这里我们先创建了一个内部的 Map 对象 `innerMap`,并向其中加入了两个键值对。接着创建了一个 List 对象 `list`,并向其中加入了两个元素。最后将 `innerMap` 和 `list` 作为键值对插入到了外部的 Map 对象 `map` 中。
需要注意的是,由于 Map 是一个 key-value 的键值对集合,因此要确保每个键对象的唯一性。在这个例子中,我们使用了一个内部的 Map 对象作为外部 Map 对象的键,因此需要保证内部 Map 对象的唯一性。
private Map<Integer, Map<Integer, String>> mDsmccFile = new HashMap<>();
这行代码是在 Java 中声明并初始化一个名为 `mDsmccFile` 的私有变量,它是一个嵌套的 Map 结构。外层的 Map 使用 `Integer` 作为键,内层的 Map 再次使用 `Integer` 作为键,而值则为 `String` 类型。
具体来说,`private` 关键字表示这是一个私有的成员变量,只能在该类内部访问。`Map<Integer, Map<Integer, String>>` 指定映射类型,第一个 `<Integer>` 表示键(key)的类型是整数(Integer),第二个 `<Integer, String>` 表示值(value)是另一个整数到字符串的映射。
通过 `new HashMap<>()`,你创建了一个空的 HashMap 实例。这意味着一开始,`mDsmccFile` 是一个没有元素的嵌套 Map。
例如,你可以像这样操作这个嵌套的 Map:
```java
// 添加键值对
mDsmccFile.put(1, new HashMap<>());
mDsmccFile.get(1).put(2, "Value");
// 获取子 Map
Map<Integer, String> subMap = mDsmccFile.get(1);
// 删除某个键值对
mDsmccFile.remove(1);
```
阅读全文