常用的lamada表达式

 

示范操作类

public class User{
    String name;
    Integer age;
    Integer sex;
BigDecimal money;
}

  

List<User> list= new Array()<>;

//获取某个字段集合
List<String> list1=list.stream().map(User::getName).collect(Collectors.toList);


//过滤满足某条件的对象集合(age>18)
List<User>list2=list.stream().filter(user>user.getAge>18)..collect(Collectors.toList);

//根据集合特定2个字段转为map
Map<String,Integer>map1=list.lstream().collect(Collertors.toMap(User::getSex,User::getAge);

//根据将集合变成键值对
Map<String,List<User>>map1= list.list.stream().collect(Collertors.toMap(User::getSex,user->user);


//根据某个字段分组排列集合(性别)
Map<String,List<User>>map= list.list.stream().collect(Collertors.groupingBy(User::getSex));

//获取某个值最高对象
User user=list.stream().max(Comparator.comparing(user->user.getAge)).get();

//累计计算某字段值
BigDecimal big=list.stream().map(User::getMoney).reduce(Bige.ZERO,BigDecimal::add)

 

 Coparator

//返回 对象集合以类属性一升序排序
list.stream().sorted(Comparator.comparing(类::属性一));
 
//返回 对象集合以类属性一降序排序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));//以属性一降序
 
//返回 对象集合以类属性一升序 属性二升序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));
 
//返回 对象集合以类属性一降序 属性二升序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二));//先以属性一降序,再进行属性二升序
 
//返回 对象集合以类属性一降序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,升序结果进行属性一降序,再进行属性二降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一降序,再进行属性二降序
 
//返回 对象集合以类属性一升序 属性二降序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二).reversed());//先以属性一升序,升序结果进行属性一降序,再进行属性二升序,结果进行属性一降序属性二降序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二,Comparator.reverseOrder()));//先以属性一升序,再进行属性二降序

//空/Null数据排序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(item -> item.属性二, Comparator.nullsLast(Date::compareTo))).collect(Collectors.toList());

//空/Null数据分组
Map<String, List<类>> map = list.stream().collect(Collectors.groupingBy(item -> {
  if (item.属性一 == null || item.属性一.equals("")) {
    return "";
  }
  return DateFormat.getDateInstance().format(item.属性一);
}))

  

posted @ 2021-09-16 11:21  慧剑仙  阅读(131)  评论(0编辑  收藏  举报