欢迎访问宙启技术站
智能推送

Java中的Stream函数使用方法

发布时间:2023-05-19 18:41:49

Java Stream函数是Java8中提供的一个强大的API,它用于处理集合对象(Collection)和数组(Array)等数据源。Stream函数能够通过过滤、映射、排序等方式,对数据源进行操作和转换,同时也支持并发操作,可以更好地利用多核CPU的性能。

Stream函数的使用方法有以下几个步骤:

1. 创建Stream对象

Stream对象可以通过Java8中的Stream静态方法(如Stream.of)或集合对象的实例方法(如List.stream)来创建。

例如:

List<Integer> list = Arrays.asList(1,2,3,4,5);

Stream<Integer> stream = list.stream();

2. Stream操作

Stream函数提供了多个操作方法,包括中间操作方法和终止操作方法。中间操作方法返回另一个Stream对象,可以进行链式操作;终止操作方法返回一个特定的类型(如int、double、void等),用于结束整个流的操作。

2.1 中间操作方法

2.1.1 filter方法

filter方法用于过滤Stream中的元素,返回一个符合条件的Stream子集。

例如:

List<Integer> list = Arrays.asList(1,2,3,4,5);

Stream<Integer> stream = list.stream();

stream.filter(num -> num%2==0);//过滤出偶数子集

2.1.2 map方法

map方法用于将Stream中的元素根据指定的转换函数进行转换,返回一个新的Stream对象。

例如:

List<Integer> list = Arrays.asList(1,2,3,4,5);

Stream<Integer> stream = list.stream();

stream.map(num -> num*num);//元素平方

2.1.3 sorted方法

sorted方法用于对Stream中的元素进行排序,返回一个新的Stream对象。

例如:

List<Integer> list = Arrays.asList(1,5,3,4,2);

Stream<Integer> stream = list.stream();

stream.sorted();//升序排序

2.2 终止操作方法

2.2.1 forEach方法

forEach方法用于遍历Stream中的各个元素,并执行指定的操作。

例如:

List<Integer> list = Arrays.asList(1,2,3,4,5);

Stream<Integer> stream = list.stream();

stream.forEach(num -> System.out.print(num));//输出:12345

2.2.2 reduce方法

reduce方法用于将Stream中的元素逐个进行指定的操作,返回一个经过操作后的结果。

例如:

List<Integer> list = Arrays.asList(1,2,3,4,5);

Stream<Integer> stream = list.stream();

int sum = stream.reduce(0, (a, b) -> a+b);//求和操作

2.2.3 collect方法

collect方法用于将Stream中的元素转换为指定的集合类型,返回一个新的集合对象。

例如:

List<Integer> list = Arrays.asList(1,2,3,4,5);

Stream<Integer> stream = list.stream();

List<Integer> newList = stream.filter(num -> num%2==0).collect(Collectors.toList());//过滤出偶数元素并转换为List集合

总结:

Stream函数的使用方法涉及到创建Stream对象、中间操作方法和终止操作方法。在进行操作时需要注意中间操作方法并不执行实际的计算操作,只是返回一个新的Stream对象,并且这些方法可以进行链式操作;而终止操作方法会对Stream中的元素进行实际的计算操作,返回一个特定的类型结果。这些方法可以灵活组合使用,可以实现对数据源的高效处理和转换。