Java 一些异常报错、注意事项(4) - Java8

本文详细介绍了Java8中stream的peek操作,强调了其在查看流水线输出和处理数据上的应用。同时,提到了@ConditionalOnBean注解在容器中依赖管理的作用,Optional的orElse和orElseGet方法的用法,以及处理stream map转换时可能出现的空指针异常,最后还展示了stream如何进行多字段排序的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一:Java8 stream peek使用

Stream<T> peek(Consumer<? super T> action), 是针对流中的每个元素执行操作action,通常用于查阅中间流结果。它能够将中间变量的值输出到日志,帮助了解流水线的每一步操作的输出值。

注意点:(1)使用peek操作流,流中的元素没有改变。

(2)peek对一个对象进行操作的时候,对象不变,但是可以改变对象里面的值。

当看到第(1)点时,会觉得peek只是用于debug查看流水线输出情况的,但是可以利用第(2)点对数据做一些处理。

例如:

public class Test {
    public static void main(String[] args) {

        List<Person> collect = Arrays.asList(new Person("001", "ms"), new Person("002", "ls"))
                .stream().filter(p -> "ls".equals(p.getName())).peek(p -> p.setId("000")).collect(Collectors.toList());
        collect.forEach(c-> System.out.println(c));
    }
}

@AllArgsConstructor
@Data
public class Person {
   private String id;
   private Strin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值