1、forEach 是一个终端操作
Arrays.stream(arrayOfEmps).forEach(v -> v.setPoint(10));
Arrays.stream(arrayOfEmps).forEach(v-> System.out.println(v.getName()));
2、collect 是说将处理完的数据按照某种方式收集起来,也就是某种容器将数据按照特定的格式存储起来
作用于原来的流,产生一个新的流,新的流的元素类型可以与原来的元素类型不同
说白了就是用一个方法,每个元素作为这个方法的入参,得到新的元素,替换原来那个元素
System.out.println("map *****");
List<String> collect = Stream.of(arrayOfEmps).map(Employee::getName).collect(Collectors.toList());
collect.forEach(System.out::print);
List<Employee> collect = Arrays.stream(arrayOfEmps).collect(Collectors.toList());
collect.forEach( v -> System.out.println(v.getName()));
3、filter 只把满足表达式的元素留下来
List<Employee> collect = Arrays.stream(arrayOfEmps).filter(v -> v.getPoint() > 200000.0).collect(Collectors.toList());
collect.forEach(v -> System.out.println(v.getName()));
4、findFirst 找到满足条件按的第一个元素 1、findFirst 没有参数,需要在filter后调用,也就是在结果中找到第一个 2、用orElse,当找不到的时候返回一个默认值
Employee employee = Arrays.stream(arrayOfEmps).filter(v -> v.getPoint() > 100000.0).findFirst().orElse(null);
System.out.println(employee);
4、toArray, 将结果手机城一个数组,需要注意参数,是数组类型new的方法引用
Employee[] employees = Arrays.stream(arrayOfEmps).filter(v -> v.getPoint() > 100000.0).toArray(Employee[]::new);
for (int i = 0; i < employees.length; i++) {
System.out.println(employees[i].getPoint());
}