Java中的Stream API:使用方法
Java中的Stream API是Java 8引入的一个新功能,它可以将集合或数组中的数据进行流式处理,提供了一种更简洁、更易读、更灵活的方式来操作数据。本文将介绍Java中Stream API的使用方法。
1.创建Stream
在使用Stream API之前,需要先创建一个Stream对象。有四种创建Stream对象的方式:
(1)从集合创建:
List<String> list = new ArrayList<>();
Stream<String> stream = list.stream();
(2)从数组创建:
String[] array = new String[]{"a", "b", "c"};
Stream<String> stream = Arrays.stream(array);
(3)使用Stream.of()方法创建:
Stream<String> stream = Stream.of("a", "b", "c");
(4)创建无限流:
Stream<Integer> stream = Stream.iterate(0, n -> n + 2); //从0开始,每次加2。
2.中间操作
中间操作是指对Stream对象进行一系列的操作,输出的结果还是一个Stream对象,可以继续进行操作。中间操作常用的方法有:
(1)filter方法:过滤掉不符合要求的元素。
List<String> list = Arrays.asList("apple", "banana", "pear");
Stream<String> stream = list.stream().filter(s -> s.length() > 5);
(2)map方法:对元素进行变换,输出的是一个新的Stream对象。
List<String> list = Arrays.asList("apple", "banana", "pear");
Stream<Integer> stream = list.stream().map(String::length);
(3)limit方法:限制流中元素的数量。
List<String> list = Arrays.asList("apple", "banana", "pear");
Stream<String> stream = list.stream().limit(2);
(4)sorted方法:对流中元素进行排序。
List<String> list = Arrays.asList("apple", "banana", "pear");
Stream<String> stream = list.stream().sorted();
(5)distinct方法:去除流中重复的元素。
List<String> list = Arrays.asList("apple", "banana", "pear", "apple", "pear");
Stream<String> stream = list.stream().distinct();
(6)flatMap方法:将Stream对象中的每一个元素Stream转换成一个新的Stream对象。
List<List<String>> lists = Arrays.asList(Arrays.asList("apple", "banana"), Arrays.asList("pear", "peach"));
Stream<String> stream = lists.stream().flatMap(Collection::stream);
3.终止操作
终止操作是指最后一次操作,一旦执行了终止操作,就不能再进行任何操作。常用的终止操作有:
(1)forEach方法:对每个元素执行一些操作。
List<String> list = Arrays.asList("apple", "banana", "pear");
list.stream().forEach(System.out::println);
(2)count方法:获取元素的数量。
List<String> list = Arrays.asList("apple", "banana", "pear");
long count = list.stream().count();
(3)reduce方法:将流中所有元素归约成一个元素。
List<Integer> list = Arrays.asList(1, 2, 3, 4);
Optional<Integer> optional = list.stream().reduce(Integer::sum);
(4)findFirst方法:获取流中 个元素。
List<String> list = Arrays.asList("apple", "banana", "pear");
Optional<String> optional = list.stream().findFirst();
以上只是Stream API的基本使用方式,它还有很多其他的方法和用法,可以根据需要进行查看和学习。总的来说,Stream API是Java 8中一个非常强大和方便的工具,可以帮助我们更高效地处理数据。
