lambda及stream学习 (3)

flatMap 流元素合并

public static void testFlatMap(List<User> userList1 , List<User> userList2){
List<List<User>> lists = new ArrayList<>();
lists.add(userList1);
lists.add(userList2);
//将集合里的元素(集合)转为流,再将流组合为一个大的集合
List<User> collect = lists.stream().flatMap(item -> item.stream()).collect(Collectors.toList());
//合并集合
collect.forEach(System.out::println);
}

 

distinct 去重

   //测试distinct 去重
public static void testDistinct(){
   List<Integer> list = new ArrayList<>();
       list.add(1);
       list.add(2);
       list.add(1);
       List<Integer> collect = list.stream().distinct().collect(Collectors.toList());
       collect.forEach(o-> System.out.println(o));
  }

 

sorted 排序

   //测试sorted 排序
public static void testSort(){
  List<Integer> list = new ArrayList<>();
       list.add(1);
       list.add(2);
       list.add(1);
List<Integer> collect = list.stream().sorted((o1, o2) -> o1 - o2).collect(Collectors.toList());//升序排序
List<Integer> collect2 = list.stream().sorted((o1, o2) -> o2 - o1).collect(Collectors.toList());//降序排序
}

 

limit 限流,只取几个元素

//测试limit限读
public static void testLimit(){
  List<Integer> list = new ArrayList<>();
       list.add(1);
       list.add(2);
       list.add(1);
       List<Integer> collect = list.stream().limit(1).collect(Collectors.toList());
       System.out.println(collect.size());
  }

 

skip 跳过读取

   //测试skip 跳过读取操作
   public static void testSkip(){
     List<Integer> list = new ArrayList<>();
       list.add(1);
       list.add(2);
       list.add(1);
       List<Integer> collect = list.stream().skip(2).collect(Collectors.toList());
       collect.forEach(o-> System.out.println(o));
  }

Collectors收集器

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

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