java stream流list转map
时间: 2023-07-06 19:34:58 浏览: 120
可以使用Java 8中的Stream API和Collectors工具类来将List转换为Map。具体的代码实现如下:
```java
List<MyObject> list = // 获取list数据
Map<String, MyObject> map = list.stream()
.collect(Collectors.toMap(MyObject::getKey, Function.identity()));
```
其中,MyObject是List中存储的对象类型,getKey是MyObject中用于作为Map中key的属性名。可以根据实际情况修改。Function.identity()则为MyObject对象本身,作为Map中的value值。
相关问题
java+stream流list转map
Java 8中使用Stream流将List转换为Map有多种方式,以下是其中两种常见的方式:
1. 使用Collectors.toMap()方法
```java
Map<String, Integer> map = list.stream().collect(Collectors.toMap(obj -> obj.getKey(), obj -> obj.getValue()));
```
其中,list为待转换的List,obj为List中的元素,getKey()和getValue()为获取Map中键值对的方法。
2. 使用Collectors.toMap()方法结合lambda表达式
```java
Map<String, Integer> map = list.stream().collect(Collectors.toMap(obj -> obj.getKey(), obj -> obj.getValue(), (v1, v2) -> v1));
```
其中,list为待转换的List,obj为List中的元素,getKey()和getValue()为获取Map中键值对的方法,v1和v2为value相同时的处理方式,此处为保留v1。
java stream流 map 转list
可以使用 `Collectors.toList()` 方法将 Java 8 Stream 流中的元素转换为 List,示例如下:
```java
List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> newList = list.stream()
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println(newList); // 输出 [APPLE, BANANA, ORANGE]
```
在上述示例中,首先将一个包含了三个字符串的 List 转换成 Stream 流,并使用 `map()` 方法将每个字符串转换为大写形式,最后使用 `collect()` 方法将结果收集为一个新的 List。
阅读全文