HashMap遍历所有key返回List<stirng>
时间: 2023-12-10 11:02:25 浏览: 27
可以使用HashMap的keySet()方法获取所有的键,然后将它们放入一个List中返回即可。具体代码如下所示:
```
HashMap<String, Object> map = new HashMap<>();
// 向map中添加键值对...
List<String> keys = new ArrayList<>(map.keySet());
```
注意,如果你想要保持键的顺序,可以使用LinkedHashMap代替HashMap。另外,如果你只需要遍历值,可以使用HashMap的values()方法获取所有的值。
相关问题
Map<String, Map<String, List<String>>> dataMap2 = new HashMap<String, Map<String, List<String>>>(map);怎么遍历
可以使用双重循环遍历,首先遍历外层的`Map`,获取每一个内层的`Map`,再遍历内层的`Map`,获取其中的`List`。
以下是示例代码:
```
for (Map.Entry<String, Map<String, List<String>>> entry : dataMap2.entrySet()) {
String key1 = entry.getKey();
Map<String, List<String>> map2 = entry.getValue();
for (Map.Entry<String, List<String>> entry2 : map2.entrySet()) {
String key2 = entry2.getKey();
List<String> list = entry2.getValue();
System.out.println("外层key:" + key1 + ",内层key:" + key2 + ",list:" + list);
}
}
```
其中,`entrySet()`方法可以获取`Map`中所有键值对的集合,每个键值对都是一个`Map.Entry`对象,包含了键和值两部分。通过`getKey()`方法可以获取键,通过`getValue()`方法可以获取值。因为内层的值是一个`Map`,所以需要再次使用`entrySet()`方法遍历内层的`Map`。
遍历map<string,List<Info>>
遍历Map<String, List<Info>>的方式有以下几种:
1. 普通循环遍历:
```java
Map<String, List<Info>> map = new HashMap<>();
// 假设map已经被填充了数据
for (Map.Entry<String, List<Info>> entry : map.entrySet()) {
String key = entry.getKey();
List<Info> value = entry.getValue();
// 在这里对key和value进行操作
}
```
2. 迭代器遍历:
```java
Map<String, List<Info>> map = new HashMap<>();
// 假设map已经被填充了数据
Iterator<Map.Entry<String, List<Info>>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, List<Info>> entry = iterator.next();
String key = entry.getKey();
List<Info> value = entry.getValue();
// 在这里对key和value进行操作
}
```
3. Lambda表达式遍历(Java 8及以上):
```java
Map<String, List<Info>> map = new HashMap<>();
// 假设map已经被填充了数据
map.forEach((key, value) -> {
// 在这里对key和value进行操作
});
```