Java8新特性 -stream 常用api
1. 映射为异步任务处理
List<ClueHistoryVo> collect = clueHistoryVos.stream().map(n ->
CompletableFuture.supplyAsync(() ->
ceshi(n), threadPoolExecutor))
.collect(Collectors.toList())
.stream().map(n -> n.join())
.collect(Collectors.toList());
2.去重
ArrayList<ClueHistoryVo> totalNumcollect = clueHistoryVoList.stream().
collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ClueHistoryVo::getPersonId))), ArrayList::new));
3.分组
~~~sql
Map<String, List<ClueHistoryVo>> collect1 =
clueHistoryVoList.stream().
collect(Collectors.groupingBy(ClueHistoryVo::getPersonId));
~~~
4.分页
int size = pzClueVos.size();
int pageNo = (Integer) map.get("currPage");
int pageSise = (Integer) map.get("pageSize");
List<PzClueVo> collect = pzClueVos.stream().
skip((pageNo - 1) * pageSise).
limit(pageSise).collect(Collectors.toList());
5.筛选排序
list.stream().filter(s -> s.getDealMethodCode() != null).
sorted(Comparator.comparing(ClueHistoryVo::getDbusinessSeq).reversed()).
collect(Collectors.toList());