lambdaQuery.select(UserCarBinding::getRegistrationId) //select值
.eq(UserCarBinding::getRegistrationId, userId)
.eq(UserCarBinding::getDelFlag, ConstantFactory.DEL_FLAG.UN_DELETE)
.in(UserCarBinding::getVerifyStatus, verifyStatus)
.orderByDesc(UserCarBinding::getUpdateDate);
List<LicensePlateVO> plateVOList = userCarBindingMapper.selectList(lambdaQuery)
Subject subject1 = new Subject("语文", 90.0);
Subject subject2 = new Subject("语文", 88.0);
List<Subject> subjectList = new ArrayList<>();
subjectList.add(subject1);
subjectList.add(subject2);
//1 排序生效,使用stream和collect 原集合不变
subjectListNew = subjectList.stream().sorted((s1, s2) -> s1.getGrade().compareTo(s2.getGrade())).collect(Collectors.toList());
System.out.println(JSON.toJSONString(subjectListNew));
//[{"grade":90.0,"name":"语文"},{"grade":91.0,"name":"语文"},{"grade":92.0,"name":"语文"},{"grade":94.0,"name":"语文"}]
//2 排序生效,不使用stream和collect
subjectList.sort((s1, s2) -> s1.getGrade().compareTo(s2.getGrade()));
1. 查找list符合条件的数据
A a = bList().stream().filter(b -> "小明".equals(b.getName())).findAny().get();
这个方法并不是找得到就返回,找不到就不做处理,而是找不到直接抛异常了。
A a =bList().stream().filter(b->"小明".equals(b.getName())).findAny().orElse(null);
1
orElse()中可以塞默认值。如果找不到就会返回orElse中你自己设置的默认值。
2. 查找符合条件的第一个:
Optional<A> firstA= AList.stream()
.filter(a -> "小明".equals(a.getUserName()))
.findFirst();
ifPresent 用于对过滤出的数据如果存在。如果经过过滤条件后,有数据的话就可以进行修改。
Optional<A> firstA= AList.stream()
.filter(a -> "小明".equals(a.getUserName()))
.findFirst()
.ifPresent(a -> {
a.setUserName("明明");
})
3. 过滤list返回 符合条件的list
List<A> aList= AList.stream()
.filter(a -> "小明".equals(a.getUserName()))
.collect(Collectors.toList());
4. //map(A::getId) 中的 A 为实体类
List<Long> idList = AList.stream()
.map(A::getId)
.collect(Collectors.toList());
5. list返回map
//A 为实体类
Map<Long, A> map = AList.stream()
.filter(a-> StringUtil.isNotEmpty(a.getName()))
.collect(Collectors.toMap(A::getId, a -> a));