list stream 转map map结果value为自己
时间: 2023-10-14 22:23:14 浏览: 114
可以使用`Collectors.toMap()`方法将`List`转换为`Map`,其中`value`为列表中的元素本身。以下是一个示例:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("a", "b", "c");
Map<String, String> map = list.stream()
.collect(Collectors.toMap(
// key: 元素本身
element -> element,
// value: 元素本身
element -> element
));
System.out.println(map); // 输出: {a=a, b=b, c=c}
}
}
```
在上面的示例中,我们将`list`中的元素转换为`Map`,其中`key`和`value`均为元素本身。您可以根据您的需求调整`toMap()`方法的参数来适应不同的情况。
相关问题
list stream 转map
要将一个Stream转换为Map,你可以使用Collectors.toMap方法。这个方法需要提供两个lambda表达式,一个用于指定键(key)的提取方式,另一个用于指定值(value)的提取方式。
下面是一个示例代码,假设你有一个包含Person对象的Stream,你想将它们按照姓名作为键,年龄作为值转换为一个Map:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Person> persons = List.of(
new Person("Alice", 25),
new Person("Bob", 30),
new Person("Charlie", 35)
);
Map<String, Integer> personMap = persons.stream()
.collect(Collectors.toMap(Person::getName, Person::getAge));
System.out.println(personMap);
}
list嵌套map利用stream转换成map指定map的value变成map的key
可以使用以下代码实现:
```java
List<Map<String, String>> list = new ArrayList<>();
// 添加数据到list中
String targetKey = "targetKey"; // 指定要转换的map的key
Map<String, Map<String, String>> result = list.stream()
.collect(Collectors.toMap(
map -> map.get(targetKey), // 将指定key的value作为新的key
map -> {
map.remove(targetKey); // 删除指定key
return map;
}
));
```
上述代码中,首先使用`stream()`方法将list转换成一个流,然后使用`collect()`方法将stream中的元素收集到一个新的map中。在收集的过程中,使用lambda表达式将指定key的value作为新的key,并将原来的map对象作为新的value,最后返回一个新的map对象。在返回新的map对象之前,需要先将原来的map对象中的指定key删除。
阅读全文