collect
- toList : 将流中的元素放置到一个列表集合中去。这个列表默认为ArrayList
lst.stream().collect(Collectors.toList())
- toSet : 将流中的元素放置到一个无序集set中去。默认为HashSet。
lst.stream().collect(Collectors.toSet())
- toMap : 根据给定的键生成器和值生成器生成的键和值保存到一个map中
lst.stream().collect(Collectors.toMap(Student::getName,student -> student))
- joining : 将流中的元素全部以字符序列的方式连接到一起
lst.stream().map(Student::getName).collect(Collectors.joining(","))
- counting : 计数
lst.stream().collect(Collectors.counting())
- groupingBy : 分组
lst.stream().collect(Collectors.groupingBy(Student::getAge))
-
partitioningBy : 将流中的元素按照给定的校验规则的结果分为两个部分,放到一个map中返回,map的键是Boolean类型,值为元素的列表List
lst.stream().collect(Collectors.partitioningBy(student -> student.getAge() > 13))
- minBy/maxBy : 获取最小/最大值
lst.stream().collect(Collectors.maxBy((a,b) -> a.getAge() - b.getAge())).get()
- summingInt 求和
lst.stream().collect(Collectors.summingInt(Student::getAge))
filter
- 过滤姓名为zhangsan的学生
lst.stream().filter(e -> "zhangsan".equals(e.getName())).collect(Collectors.toList())
- 把年龄大于12岁的学生姓名用","拼接起来
lst.stream().filter(e -> e.getAge() > 12).map(Student::getName).collect(Collectors.joining(","))
forEach
- 遍历
lst.stream().forEach(iteam -> { System.out.println(iteam.getAge()); });
limit
-
限制结果集的数据量
lst.stream().limit(2).collect(Collectors.toList())
sorted
-
排序
lst.stream().sorted(Comparator.comparing(Student::getAge))
max/min
-
获取结果中 某个值最大最小的的对象
lst.stream().max(Comparator.comparing(Student::getAge)).get()