利用 Java 8 引入的函数式编程能力
1. 函数式编程范式
传统命令式 vs 函数式
// 传统方式(命令式)
List<User> users = new ArrayList<>();
for (String line : lines) {
String[] parts = line.split(",");
Integer id = Integer.parseInt(parts[0]);
// ... 其他解析逻辑
User user = new User(id, ...);
users.add(user);
}
// 函数式方式(声明式)
List<User> users = lines.stream()
.map(line -> {
String[] parts = line.split(",");
Integer id = Integer.parseInt(parts[0]);
// ... 其他解析逻辑
return new User(id, ...);
})
.toList();
2. 链式操作能力
Stream 支持流畅的链式调用:
List<User> result = lines.stream() // 转换为流
.filter(line -> !line.trim().isEmpty()) // 过滤空行
.map(line -> parseUser(line)) // 转换映射
.filter(user -> user.getAge() > 18) // 再次过滤
.sorted(Comparator.comparing(User::getName)) // 排序
.toList(); // 终止操作

被折叠的 条评论
为什么被折叠?



