Map<String, List<Dto>> deviceMap = deviceList.stream().collect(Collectors.groupingBy(Dto::getFlowId)); 场景:如果getFlowId是null.就会包以下错误 element cannot be mapped to a null key 但是有些场景我们还得用这条数据,所以我们再分组的时候可以允许该字段为null 解决: import java.util.ArrayList; im…
Java8的groupingBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map 对集合按照单个属性分组 case1: List<String> items = Arrays.asList("apple", "apple", "banana", "apple", "orange", "banana", "papaya");…
点波关注不迷路,一键三连好运连连! 先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里. 统计员工的最高薪资.平均薪资.薪资之和. 将员工按薪资从高到低排序,同样薪资者年龄小者在前. 将员工按性别分类,将员工按性别和地区分类,将员工按薪资是否高于8000分为两部分. 用传统的迭代处理也不是很难,但代码就显得冗余了,跟Stream相比高下立判. 1 Stream概述 Java 8 是一个非常成功的版本,这个版本新增的Stream,配合…
最近学习很多Java8方面的新特性,特地做了一些简单的实践和总结. import java.util.*; import java.util.stream.Collectors; public class StreamTest { static class User{ private String name; private int age; public String getName() { return name; } public void setName(String name) { t…
如图,数据库查出来的数据: 需求是按menu_id和menu_name分组,stream实现最简单, stream里面只有按一个属性分组的,但是可以利用string简单变换一下: List<JsonObject> list = goodsList.getList(); Map<String, List<JsonObject>> menuGroupMap = list.stream().collect(Collectors.groupingBy(goods -> g…
public static void main(String[] args) { List<GroupDetailDTO> list = new ArrayList<>(); GroupDetailDTO dto1 = new GroupDetailDTO(); dto1.setHeadsetId(1); dto1.setTime("2020-01-03"); dto1.setActConcreteTime("a"); dto1.setPla…
//根据排课id分组 Map<Integer, List<Schedule4Homework>> idSchedule4HomeworksMap = schedule4Homeworks.stream().collect(Collectors.groupingBy(Schedule4Homework::getScheduleId)); //根据时间排序(reversed方法表示倒序) memberCards.sort(Comparator.comparing(MemberCard:…
import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import…
1.Lambda 表达式: 引导:http://www.cnblogs.com/yulinfeng/p/8452379.html DEMO1: List<String> names1 = new ArrayList<String>(); names1.add("Google "); names1.add("Runoob "); names1.add("Taobao "); names1.add("Baidu &q…
上一篇文章我讲解 Stream 流的基本原理,以及它与集合的区别关系,讲了那么多抽象的,本篇文章我们开始实战,讲解流的各个方法以及各种操作 没有看过上篇文章的可以先点击进去学习一下 简洁又快速地处理集合--Java8 Stream(上),当然你直接看这篇也可以,不过了解其本身才能更融会贯通哦. 值得注意的是:学习 Stream 之前必须先学习 lambda 的相关知识.本文也假设读者已经掌握 lambda 的相关知识. 本篇文章主要内容: 流基本的常用方法 一种特化形式的流--数值流 Optio…