Stream是一组用来处理数组,集合的api,该api支持数组,集合的过滤,查找,转换,汇总,集合等操作 // 数据源 List<Student> students = new ArrayList<>(); students.add(new Student(){{setId(1);setName("zhang1");}}); students.add(new Student(){{setId(3);setName("zhang2");}}); List<Integer> resultList = Arrays.asList(1, 2, 2, 3, 4, 5, 6, 8, 7, 9, 10); // filter【过滤函数】 List<Integer> filterList = resultList.stream().filter(i -> i > 1).collect(Collectors.toList()); System.out.println("filter: " + filterList ); // distinct【去重函数】 List<Integer> distinctList = resultList.stream().distinct().collect(Collectors.toList()); System.out.println("distinct: " + distinctList); // sorted【排序函数】 List<Integer> sortedList = resultList.stream().sorted().collect(Collectors.toList()); System.out.println("sort: " + sortedList); //limit【截取函数 从左往右截取一个不超过指定长度的串】 List<Integer> limitList= resultList.stream().limit(3).collect(Collectors.toList()); System.out.println("limit: " + limitList); // skip【扔掉函数了前面n个元素函数】 List<Integer> skipList = resultList.stream().skip(3).collect(Collectors.toList()); System.out.println("skip: " + skipList); // collect是将最终stream中得数据收集起来,最终生成一个list,set,或者map System.out.println("collect-list: " + resultList.stream().collect(Collectors.toList())); System.out.println("collect-set: " + resultList.stream().collect(Collectors.toSet())); System.out.println("collect-map: " + students.stream().collect(Collectors.toMap(Student::getId,Student::getName))); // findFirst【findFirst方法能找到你想要的第一个元素】 Optional<Integer> findFirstOpt = resultList.stream().filter(i -> i > 1).findFirst(); System.out.println("findFirst: " + findFirstOpt.get()); // reduce【元素求和】 Integer sum = resultList.stream().reduce(0,(a,b)->a+b); System.out.println("reduce-sum: " + sum); // reduce【元素求最大值】 Optional<Integer> max = resultList.stream().reduce(Integer::max); System.out.println("reduce-max: " + max.get()); /** * Stream map函数总结 * 该方法会接受一个函数作为参数,这个函数会被应用到每个元素上,并将其映射成一个新的元素 */ List<String> nameList = students.stream().map(s->s.getName()+"map").collect(Collectors.toList()); System.out.println("map: " + nameList);
Jdk1.8新特性之Stream
最新推荐文章于 2024-05-21 11:43:59 发布