lambda及stream学习 (4)

toMap 对象元素转map集合

//测试collect收集器 toMap
public static void testCollectToMap(List<User> userList){
   //以元素的name作为k,age作为v转为map集合
Map<String, Integer> collect = userList.stream().collect(Collectors.toMap(User::getName, User::getAge));
       collect.forEach((o1,o2)-> System.out.println("K:"+o1+":V:"+o2));
}

toSet 转为不可重复集合

   //测试collect收集器 toSet //不可重复
   public static  void testCollectToSet(List<Integer>list){
       Set<Integer> collect = list.stream().collect(Collectors.toSet());
       collect.forEach(System.out::println);
  }

 

groupingBy 集合对象分组

   //测试groupingBy 分组
   public static void testCollectGroupingBy(List<User> list){
       Map<String, List<User>> collect = list.stream().collect(Collectors.groupingBy(User::getName));
       collect.forEach((o1,o2)-> System.out.println("K:"+o1+"--V:"+o2));
  }

 

maxBy 取集合最大元素

   //测试maxBy 获取最大元素
   public static void testMaxBy(List<User> list){
       //获取user对象中年龄最大的
Optional<User> collect = list.stream().collect(Collectors.maxBy((o1, o2) -> o1.getAge() - o2.getAge()));
       System.out.println(collect.get());//拿到user对象
  }

 

minBy 取集合最小元素

   //测试minBy 获取最小元素
   public static void testMinBy(List<User> list){
Optional<User> collect = list.stream().collect(Collectors.minBy((o1, o2) -> o1.getAge() - o2.getAge()));
       System.out.println(collect.get());
  }

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzywxw.html