DtAirTour dtAirTour
=
new
DtAirTour
(
)
;
List
<
DtAirTour
>
list
=
this
.
dtAirTourService
.
findAllList
(
dtAirTour
)
;
List<DtAirTour>dtAirTours=list.stream().filter(s->s.getStatus()==1).collect(Collectors.<DtAirTour>toList());
(如果数据库中有字段的值为空,不判空 代码会出现空指针异常)
List<DtAirTour> dtAirTours=list.stream().filter(s->s.getIsRecommend()!=null && s.getIsRecommend()==1).collect(Collectors.<DtAirTour>toList());
List<DtAirTour> dtAirTours=list.stream().filter(s->s.getIsVip()!=null).collect(Collectors.toList());
List<DtAirTour> dtAirTours=list.stream().filter(s->s.getAverageRating()>80).filter(s->s.getCitySetout().equals("西安")).collect(Collectors.toList());
List<DtAirTour>dtAirTours=list.stream().sorted(Comparator.comparing(DtAirTour::getDiscountPrice).reversed()).collect(Collectors.toList());
List<DtAirTour>dtAirTours=list.stream().sorted(Comparator.comparing(DtAirTour::getDiscountPrice).reversed()).collect(Collectors.toList());
List<DtAirTour> dtAirTours=list.stream().sorted(Comparator.comparing( DtAirTour::getCreateTime).reversed()).collect(Collectors.toList());
List<DtAirTour> dtAirTours1=list.stream().filter(s->s.getCreateTime().getTime()<new Date().getTime()).collect(Collectors.toList());
List<DtAirTour>dtAirTours1=list.stream().sorted(Comparator.comparing(DtAirTour::getAverageRating).reversed()).collect(Collectors.toList());
Integer dtAirTours=list.stream().mapToInt(DtAirTour::getAverageRating).max();
Integer dtAirTours=list.stream().mapToInt(DtAirTour::getAverageRating).min();
double dtAirTours=list.stream().mapToInt(DtAirTour::getAverageRating).average().getAsDouble();
第三种方式,通过stream的接口不指定排序类型操作,reversed:反向排序,默认正向排序。第四种方式,通过stream自定义Comparator排序。第二种方式,通过stream的接口指定排序类型操作。第五种方式,通过stream对多个属性进行排序。第一种方式,直接比较。
result.stream()
.sorted(Comparator.comparing(ImFriendBaseBO::getMessageTime).reversed()).collect(Collectors.toList());
ImFriendBaseBO是指你list这个对象
ImFriendBaseBO::getMessageTime对象里某个值
reversed()方法是进行离当前时间最近的在最上面,如想反之可以去掉
今天开发一个需求时,要对A和B两个List集合遍历,并比较出集合A有,而集合B没有的值。
比如说List集合A有’one’,‘two’,‘three’三个值,List集合B有’one’,‘three’两个值。
那么最终打印’two’。
下面我就用stream流来做个例子。
例子中,集合A的泛型为HashMap,集合B的泛型为String。
Stream流中,forEach()方法用于对一个流进行结尾动作,同时对最终过滤后的元素结果进行一个遍历操作。
我们可以在forEach()中直接写入类和其对应方法名,来
用java 8 stream 排序 LIst 以及自定义对象比较器
主要比较的是时间,但是时间为最近时间,java中compareto方法比较的ACSII码所以2020和2021肯定是0在前面,但是我们需要的是最近的日期在前面,所以我们对返回的结果做出来取反,正常情况 对象1的edittime和对象2的time比较的是 如果对象1的time小于对象2的time就会返回 1 ,所有我们会发现2020在前面,我们只需要取反,因为 compareto 的结果只有三种 一种是1,0,-1 0是想的意思,这里可以理
下面的内容写的可能比较混乱stream流中的filter方法://过滤stream流中的limit方法://限制输出数据数量从下面可以看到skip指定类型是long,所以不能指定跳过某一个String。
1、实现List对象集合的简单去重(distinct()) 。3、实现List对象集合的简单过滤(过滤为 null 的对象)4、实现List对象集合中获取其中某一属性的List集合。6、实现List对象集合中求和、最大、最小、平均的统计。5、 现List对象集合中根据对象的某一属性进行分组。2、实现List集合的根据属性(name)去重。7、实现List对象集合的分页。