添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
DtAirTour dtAirTour = new DtAirTour ( ) ; //查DtAirTour表里的数据 List < DtAirTour > list = this . dtAirTourService . findAllList ( dtAirTour ) ;
 //查出所有字段status值为1的列表
 List<DtAirTour>dtAirTours=list.stream().filter(s->s.getStatus()==1).collect(Collectors.<DtAirTour>toList());

(如果数据库中有字段的值为空,不判空 代码会出现空指针异常)

//查出字段isrecommend值为1的所有列表
List<DtAirTour> dtAirTours=list.stream().filter(s->s.getIsRecommend()!=null && s.getIsRecommend()==1).collect(Collectors.<DtAirTour>toList());
//查出字段isVal不为null的所有列表 
List<DtAirTour> dtAirTours=list.stream().filter(s->s.getIsVip()!=null).collect(Collectors.toList());
//查出字段评分(AverageRating)大于80且地点(CitySetout)位于西安的列表
//注意:字段CitySetout的数据列形式String类型,所以不能用运算符“==”要用“equals”
List<DtAirTour> dtAirTours=list.stream().filter(s->s.getAverageRating()>80).filter(s->s.getCitySetout().equals("西安")).collect(Collectors.toList());
//按字段discountprice的值从大到小给列表排序
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对象集合的分页。