// 查询数据
List<User> list = userService.getAll();//对数据集合判空防止空指针异常if(CollectionUtils.isNotEmpty(list)){//这里是根据userId 进行排序——升序排序
list = list.stream().sorted(Comparator.comparing(User::getUserId)).collect(Collectors.toList());//这里是根据userId 进行排序——降序排序 reversed()
list = list.stream().sorted(Comparator.comparing(User::getUserId).reversed()).collect(Collectors.toList());}
多字段排序
//这里是根据userId及userName进行联合升序排序
list = list.stream().sorted(Comparator.comparing(User::getUserId).thenComparing(User::getUserName)).collect(Collectors.toList());//下面两个结果都是以userId降序userName升序排序的结果,但是查询方式不同//先以userId升序,升序结果进行userId降序,再进行userName升序
list = list.stream().sorted(Comparator.comparing(User::getUserId).reversed().thenComparing(User::getUserName)).collect(Collectors.toList());//先以userId降序,再进行userName升序 **推荐使用该种方式**
list = list.stream().sorted(Comparator.comparing(User::getUserId,Comparator.reverseOrder()).thenComparing(User::getUserName)).collect(Collectors.toList());//先以userId升序,再进行userName降序
list = list.stream().sorted(Comparator.comparing(ser::getUserId).thenComparing(User::getUserName,Comparator.reverseOrder())).collect(Collectors.toList());
取出对象某个属性值的set集合
// 这里是取出对应字段集合,用于匹配数据时,判段是否存在对应数据,以免不必要的循环,提高性能
Set<Integer> userSet = list .stream().map(User::getUserId).distinct().collect(Collectors.toSet());//distinct用于去重
list 转 map
// 使用stream流将list转为map,key为指定字段的值
Map<Integer, List<User>> stationMap = list .stream().collect(Collectors.groupingBy(User::getUserId));