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,一经查实,立即删除!