【发布时间】:2023-03-27 19:14:01
【问题描述】:
例如我有一个班级:
public class Period {
private Integer from;
private Integer to;
}
还有一个JSON格式的对象列表:
[
{
"from": 1,
"to": 2
}, {
"from": 3,
"to": 4
}, {
"from": 5,
"to": 6
}
]
我想从List<Period> periods 收集这两个字段中的所有值到一个集合中。就我而言,它将是List<Integer> values。是否有可能在periods 列表中使用stream?我试图做这样的事情:
values = periods
.stream()
.mapToInt(p -> p.getFrom())
.boxed()
.collect(Collectors.toList());
values.addAll(
periods
.stream()
.mapToInt(p -> p.getTo())
.boxed()
.collect(Collectors.toList()));
对之前的JSON这个操作的结果是:
[1,2,3,4,5,6]
是否有任何其他选项可以通过流操作来实现相同的结果?
【问题讨论】:
-
.mapToInt(p -> p.getFrom()).boxed()等价于.map(p -> p.getFrom())。您只是不必要地拆箱和重新装箱
标签: java collections java-stream