stream将对象转map 一对多 例如最终Map<Long, List<String>>
时间: 2023-11-11 18:03:21 浏览: 40
可以使用Java 8中的流式编程来将一个对象转换成一个Map<Long, List<String>>,代码如下:
```
Map<Long, List<String>> result = objectList.stream()
.collect(Collectors.groupingBy(Object::getId,
Collectors.mapping(Object::getValue, Collectors.toList())));
```
其中,objectList表示要转换成Map的对象列表,Object::getId表示获取对象的ID,Object::getValue表示获取对象的值。collect方法将转换后的结果收集到一个Map中,groupingBy方法根据ID进行分组,mapping方法将对象的值进行映射,toList方法将映射后的值存储到一个List中。最终的结果就是一个Map<Long, List<String>>类型的Map,其中每个Key都对应一个列表,列表包含多个Value值。
相关问题
使用 Stream 流将 List<Map<String, Object>> 转换为 Map<Long,Integer>
可以使用Java 8的Stream流来将List<Map<String, Object>>转换为Map<Long, Integer>。下面是一个示例代码:
```java
import java.util.*;
import java.util.stream.*;
public class ListMapToMapConversionExample {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
// 添加示例数据
Map<String, Object> map1 = new HashMap<>();
map1.put("id", 1L);
map1.put("value", 100);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("id", 2L);
map2.put("value", 200);
list.add(map2);
// 使用Stream流转换
Map<Long, Integer> result = list.stream()
.collect(Collectors.toMap(
m -> (Long) m.get("id"), // 键映射函数
m -> (Integer) m.get("value") // 值映射函数
));
// 打印结果
System.out.println(result);
}
}
```
这段代码首先创建了一个List<Map<String, Object>>,并添加了两个示例的Map对象。然后使用Stream流的collect方法和Collectors.toMap函数将List转换为Map。在toMap函数中,我们指定了键映射函数和值映射函数,分别从每个Map对象中获取"id"和"value"对应的值作为键和值。最后,将转换后的Map打印出来。
注意:代码中的键和值类型需要根据实际情况进行调整。
java stream流将List<Long>转换成List<String>
您可以使用Java Stream的`map`方法将`List<Long>`转换为`List<String>`。在`map`方法中,您可以使用`String.valueOf()`将`Long`类型转换为`String`类型。
下面是一个示例代码:
```java
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Long> longList = List.of(1L, 2L, 3L, 4L, 5L);
List<String> stringList = longList.stream()
.map(String::valueOf)
.collect(Collectors.toList());
System.out.println(stringList);
}
}
```
在上述代码中,`map(String::valueOf)`将每个`Long`对象转换为对应的`String`对象。最后,使用`collect(Collectors.toList())`方法将转换后的元素收集到一个新的`List<String>`中。
输出结果将会是:`[1, 2, 3, 4, 5]`,每个元素都是字符串类型。
希望这可以帮助到您!如果您有任何其他问题,请随时提问。