Lambda和Stream让代码简洁的七大原则
1. Lambda优于匿名内部类
 
- 函数接口:JDK 8中,只存在一个抽象方法的接口称为函数接口,使用@FunctionalInterface注解标识。
- 示例:@FunctionalInterface
public interface Comparator<T> {int compare(T o1, T o2);
}
 
- Lambda表达式:简化了匿名内部类的使用,使得代码更简洁。list.sort((o1, o2) -> o2.compareTo(o1));
 
2. 善用方法引用
 
 
3. 坚持使用标准函数接口
 
 
4. 谨慎使用Stream
 
 
5. 优先选择Stream中无副作用的函数
 
 
6. Stream优先用Collection为返回类型
 
- 返回类型:使用Collection类型(如List、Set)作为返回类型,方便后续使用迭代或Stream。
- 示例:List<String> lists = Arrays.asList(" 菜菜", " caicai ", "小菜 ", "", " ");
Stream<String> stream = lists.stream().filter(s -> !Objects.equals("", s.trim())).map(s -> s.trim());
Collection<String> collect = stream.collect(Collectors.toCollection(ArrayList::new));
 
7. 谨慎使用Stream并行
 
 
总结
 
- 函数接口:使用@FunctionalInterface注解,Lambda表达式实现简洁。
- 方法引用:简洁但需注意可读性。
- 标准函数接口:优先使用java.util.function提供的接口。
- Stream:简化代码,但需注意滥用问题。
- 无副作用函数:优先使用,处理完数据后再转换容器。
- 返回类型:优先使用Collection类型。
- 并行处理:提高速度,注意数据一致性。
 
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51340.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!