Java8特性——Stream
简介
Stream是Java 8中新增的一种处理集合的方式,它可以让我们以一种声明式的方式来处理数据,而是传统的命令式的方式。Stream可以我们更加简洁、高效地处理集合中的数据。
创建Stream
可以通过以下方式来创建Stream:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
在上述代码中,我们首先创建了一个List,然后通过stream()
方法来创建一个Stream。
中间操作
Stream中的中操作可以对数据进行过滤映射、排序等操作,常用的中间操作有:
filter
filter
方法可以根据指定的条件过滤出符合条件的元素,例如:
List<Integer> list = Arrays.asList(1, 2, 3, 4 5);
Stream<Integer> stream =.stream().filter(i -> i % 2 == 0);
在上述代码中,我们使用filter
方法过滤出了所有偶数。
map
map
方法可以将一个元素映射为另一个元素,例如:
List<String> list = Arrays.asListapple", "banana", "orange");
Stream<String> stream = list.stream().map(s -> s.toUpperCase());
在上述代码中,我们使用map
方法将所有元素转换为大写字母。
sorted
`sorted方法可以对元素进行排序,例如:
List<Integer> list = Arrays.asList(3, 1, 4, 2, 5);
Stream<Integer> stream = list.stream().sorted();
在上述代码中,我们使用sorted
方法对元素进行排序。
终止操作
Stream中的终止操作可以对数据进行统计、归约、收集等操作,常用的终止操作有:
forEach
forEach
方法可以对每个元素执行指定的操作,例如:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.stream().forEach(System.out::println);
在上述代码中,我们使用forEach
方法输出了所有元素。
count
count
方法可以统计元素的个,例如:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
long count = list.stream().count();
在上述代码中,我们使用count
方法统计了元素的个数。
collect
collect
方法可以将元素收集到一个中,例如:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenList = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());
在上述代码中,我们使用collect
方法将所有偶数收集到一个集合中。
示例1:使用Stream统计集合中的元素个数
List<Integer> list = Arrays.asList(1,2,3, 4, 5long count = list.stream().count();
System.out.println("元素个数:" + count);
在上述代码中,我们使用count
方法统计了集合中元素的个数。
示例2:使用Stream过滤集合中的元素
<List<String> list = Arrays.asList("apple", "banana", "orange");
List<String> filteredList = list.stream().filter(s -> s.startsWith("a")).collect(Collectors.toList());
System.out.println("过滤后的集合:" + filteredList);
在上述代码中,我们使用filter
方法过滤出了所有以字母"a"开头的元素。
总结
Stream是Java 8中的一种处理集合的方式,它可以让我们以一种声明式的方式来处理数据而不是传统的命令式的方式。本攻略介绍了Stream的创建、中间操作和终止操作,并提供了两个示例说明。通过学习本攻略,相信你已经掌握了Stream的基本用法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java8特性——stream - Python技术站