如何使用JavaStreamAPI中的函数式操作?
Java Stream API 是 Java 8 引入的一个功能强大的工具,用于对集合进行函数式操作。使用 Java Stream API 可以方便地进行过滤、映射、排序、计数等操作。
要使用 Java Stream API 进行函数式操作,需要先获取一个 Stream 对象。Stream 对象可以通过集合、数组、IO 流等方式来创建。
1. 使用集合创建 Stream 对象。可以通过集合的 stream() 方法来获取 Stream 对象,例如:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); Stream<Integer> stream = numbers.stream();
2. 使用数组创建 Stream 对象。可以通过 Arrays 类的 stream() 方法来获取 Stream 对象,例如:
int[] numbers = {1, 2, 3, 4, 5};
IntStream stream = Arrays.stream(numbers);
3. 使用 IO 流创建 Stream 对象。可以通过 BufferedReader 的 lines() 方法来获取一个 Stream 对象,例如:
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
Stream<String> stream = reader.lines();
一旦获取了 Stream 对象,就可以对其进行各种函数式操作。
4. 过滤操作。可以使用 filter() 方法来过滤流中的元素,例如筛选出大于 3 的元素:
Stream<Integer> stream = numbers.stream().filter(n -> n > 3);
5. 映射操作。可以使用 map() 方法将流中的元素映射成其他值,例如将整数元素映射成其平方值:
Stream<Integer> stream = numbers.stream().map(n -> n * n);
6. 排序操作。可以使用 sorted() 方法对流中的元素进行排序,默认是升序排序,可以使用 sorted(Comparator.reverseOrder()) 方法进行降序排序,例如将整数元素按降序排序:
Stream<Integer> stream = numbers.stream().sorted(Comparator.reverseOrder());
7. 终止操作。最后要使用一个终止操作来触发函数式操作,例如使用 forEach() 方法对流中的元素进行处理:
stream.forEach(System.out::println);
除了 forEach() 方法,还可以使用 collect()、count()、min()、max() 等方法进行终止操作。
综上所述,使用 Java Stream API 进行函数式操作的步骤主要有获取 Stream 对象、使用中间操作对流进行处理、使用终止操作触发处理。Java Stream API 提供了丰富的中间操作和终止操作,可以方便地对集合进行函数式操作,提高编程效率。
