Java中的Stream函数使用方法
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中的元素进行实际的计算操作,返回一个特定的类型结果。这些方法可以灵活组合使用,可以实现对数据源的高效处理和转换。
