Stream 常用语法

flatMap 多个list/stream汇成一个steam

List managerJobs = managerMap.values().stream().flatMap(Collection::stream).map(DocEmpInfoDO::getJob).collect(toList());
在这里插入图片描述

groupBy自定义集合对象!

Map<Long, Set<String>> map = weightsList.stream().collect(groupingBy(Weight::getId, mapping(Weight::getWeight, toSet())));


通过 mapping函数自定义要放入集合中的对象!

### Java 常用语法总结 #### 使用泛型简化代码 Java 中可以通过泛型来定义类型安全的集合类。例如,`List<String>` 表示一个存储字符串类型的列表。这种写法被称为语法糖,它使得代码更加简洁易读[^1]。 ```java List<String> list = new ArrayList<>(); list.add("example"); ``` #### 流式编程简介 自 Java 8 起引入了流式编程的概念,允许开发者以声明式的风格处理数据集合。流操作通常分为中间操作和终端操作两种形式。常见的方法包括 `filter`、`map` 和 `reduce` 等[^2]。 下面是一个简单的例子,展示如何利用流对集合进行过滤并映射: ```java List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); numbers.stream() .filter(n -> n % 2 == 0) // 过滤偶数 .map(n -> n * 2) // 将每个偶数乘以 2 .forEach(System.out::println); // 输出结果 ``` #### Optional 类的应用 为了减少空指针异常的发生频率,Java 提供了一个名为 `Optional` 的容器类。它可以用来表示可能为空的对象实例,并提供了诸如 `filter` 和 `map` 方法用于条件判断以及转换逻辑[^3]。 以下是一段演示代码,说明当对象存在时才执行某些特定的操作: ```java User user = new User(); user.setAge(18); user.setName("Tom"); System.out.println( Optional.ofNullable(user) .filter(u -> u.getAge() >= 18) // 判断年龄是否大于等于 18 .map(User::getName) // 获取用户名字 .orElse("Unknown") // 如果不存在则返回默认值 "Unknown" ); ``` #### 总结 上述内容涵盖了部分常用Java 编程技巧,其中包括但不限于泛型机制、流式 API 及其相关方法应用还有针对潜在 NullPointerException 设计的安全模式——即 Optional 容器类的功能介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值