list<String>转化为map
时间: 2023-11-27 14:50:18 浏览: 65
将一个 `List<String>` 转换为 `Map<String, Integer>` 可以使用如下代码:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "banana", "orange", "orange");
Map<String, Integer> map = new HashMap<>();
for (String s : list) {
map.put(s, map.getOrDefault(s, 0) + 1);
}
```
这段代码会遍历 `list` 中的每个字符串,将其作为 `Map` 的 key,如果 `Map` 中已经包含这个 key,则将其对应的 value 加 1,否则将其对应的 value 赋值为 1。
执行完上述代码后,`map` 中的内容会变成:
```java
{orange=3, banana=2, apple=1}
```
相关问题
java利用stream将List<Map<String, String>>对象转为Map<String,List<String>
可以使用Java 8中的Stream API来实现将List<Map<String, String>>对象转换为Map<String,List<String>>,具体代码如下:
```java
List<Map<String, String>> list = new ArrayList<>();
// 假设 list 中有多个 Map<String, String> 对象
Map<String, List<String>> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
```
上述代码中,先将List中的每个Map对象转换为一个包含所有键值对的Stream对象,然后使用flatMap方法将所有键值对合并为一个Stream对象。接着使用Collectors.groupingBy方法按键进行分组,使用Collectors.mapping方法提取每个键对应的值,并将其转换为List对象。
这样就可以将List<Map<String, String>>对象转换为Map<String,List<String>>对象了。
Map<String,List<String>>转 Map<String,String>
可以通过遍历Map<String,List<String>>,将List<String>转化为String,然后将其放入新的Map<String,String>中。具体实现如下所示:
```java
Map<String, List<String>> map1 = new HashMap<>();
Map<String, String> map2 = new HashMap<>();
for (Map.Entry<String, List<String>> entry : map1.entrySet()) {
String key = entry.getKey();
List<String> valueList = entry.getValue();
StringBuilder sb = new StringBuilder();
for (String value : valueList) {
sb.append(value);
}
map2.put(key, sb.toString());
}
```
阅读全文