我有以下数据:
CustomClass first = new CustomClass(1, Arrays.asList(1, 2, 3));
CustomClass second = new CustomClass(5, Arrays.asList(6,7,8));
List<CustomClass> list = Arrays.asList(first, second);
Run Code Online (Sandbox Code Playgroud)
现在我想将这些数据收集到一个列表中,该列表包含CustomClass其列表中的值和值.
我想得到这个: 1, 1, 2, 3, 5, 6, 7, 8
这是我实施的:
list.stream().forEach(item -> {
result.add(item.value);
item.values.stream().forEach(seconditem -> result.add(seconditem));
});
Run Code Online (Sandbox Code Playgroud)
我知道有一个收集方法的流,但我不明白如何使用它来收集同一个类的一个值和值列表.
tob*_*s_k 21
您可以使用Stream.concat组合Stream.of单个值和其他值的流:
List<Integer> result = list.stream()
.flatMap(x -> Stream.concat(Stream.of(x.value), x.values.stream()))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1195 次 |
| 最近记录: |