Java8引入新特性,关于Lambda表达式、函数式编程、流式操作引入,大大方便了开发人员,简单的几行代码就可以实现复杂的操作,提高代码的高逼格。废话不多,直接上案例代码。
1、场景一:获取到数据库中的数据集合,需要获取集合中的某一个字段,并返回list
Java8之前可能需要循环遍历,构造一个list<string>数组,一个一个添加。但是有了Stream操作。只需要一行代码就可以帮你实现抽取某一字段。
List<String> nameList = list.stream().map(NationalRegion::getName).collect(Collectors.toList());
2、场景一:获取到数据库中的数据集合,根据集合中数据的某一字段过滤掉集合数据中重复的对象,并返回list
//获取到list数据
List<GoodsCategory> list = goodsCategoryDao.find(query);
//对数据进行去重(根据id进行去重)
categoryList =categoryList.stream()
.filter(distinctByKey(Category::get_id)).collect(Collectors.toList());
需要引入distinctByKey函数方法,此方法无需修改
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor){
ConcurrentHashMap<Object, Boolean> map = new ConcurrentHashMap<>();
return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
Java8 Stream简化数据处理
本文介绍Java8中Stream API如何简化数据处理任务,通过两个实际场景演示如何使用Stream进行字段抽取和数据去重,显著提升开发效率。
582

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



