1. 查找流中满足条件的第一个元素
【集合】.stream()
.filter(item -> 【条件】)
.findAny()
.get();
【集合】.stream()
.filter(item -> 【条件】)
.findFirst()
.get();
2. 内循环
【集合】.stream()
.forEach(item -> {
【代码】
});
3. 将集合转换为MAP
// Function.identity() 当前实体【集合】.stream()
.collect(Collectors.toMap(item -> 【键值】), Function.identity()));
4. 集合类型转换【集合】.stream()
.map(item -> 【代码】)
.collect(Collectors.toList());
5. 求和long result = 【集合】.stream()
.map(item -> {
【代码】
})
.reduce(0, Integer::sum);
6. 分组
【集合】.stream()
.map(item -> 【代码】)
.collect(Collectors.groupingBy(Record::getUserId));
【集合】.stream()
.map(item -> 【代码】)
.collect(Collectors.groupingBy(Record::getUserId,
Collectors.reducing(BigDecimal.ZERO, Record::getOutput, BigDecimal::add)));
7. 排序(取前N个对象)
【集合】.stream()
.map(item -> 【代码】)
.sorted(Comparator.comparing(Expression::getPriority))
.collect(Collectors.toList());
【集合】.stream()
.map(item -> 【代码】)
.sorted((x, y) -> y.getOutput().compareTo(x.getOutput()))
.limit(10)
.collect(Collectors.toList());
8. 判断所有为真或假
【集合】.stream()
.map(item -> update(item))
.allMatch(result -> 1 == result);