Stream API的一些方法

Java 8中的Stream API是一种新的处理集合数据的方式,它提供了一种更加简洁、高效、灵活的方式来处理集合数据。Stream API提供了一系列的方法,可以对集合数据进行过滤、映射、排序、分组、聚合等操作。下面介绍一下Stream API中常用的方法和用法:

filter()方法:用于过滤集合中的元素,只保留符合条件的元素。例如:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);List<Integer> result = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());上面的代码使用filter()方法过滤出集合中的偶数元素。

map()方法:用于将集合中的元素映射为另一种类型的元素。例如:List<String> list = Arrays.asList("apple", "banana", "orange");List<Integer> result = list.stream().map(s -> s.length()).collect(Collectors.toList());上面的代码使用map()方法将集合中的字符串元素映射为它们的长度。

sorted()方法:用于对集合中的元素进行排序。例如:List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5);List<Integer> result = list.stream().sorted().collect(Collectors.toList());上面的代码使用sorted()方法对集合中的元素进行排序。

distinct()方法:用于去除集合中的重复元素。例如:List<Integer> list = Arrays.asList(1, 2, 3, 2, 4, 5, 3);List<Integer> result = list.stream().distinct().collect(Collectors.toList());上面的代码使用distinct()方法去除集合中的重复元素。

limit()方法:用于限制集合中元素的数量。例如:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);List<Integer> result = list.stream().limit(3).collect(Collectors.toList());上面的代码使用limit()方法限制集合中元素的数量为3。

skip()方法:用于跳过集合中的前n个元素。例如:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);List<Integer> result = list.stream().skip(2).collect(Collectors.toList());上面的代码使用skip()方法跳过集合中的前2个元素。

forEach()方法:用于对集合中的每个元素执行指定的操作。例如:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);list.stream().forEach(System.out::println);上面的代码使用forEach()方法对集合中的每个元素执行System.out.println()操作。

collect()方法:用于将Stream流转换为另一种类型的集合。例如:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);Set<Integer> result = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toSet());上面的代码使用collect()方法将Stream流转换为Set集合。

reduce()方法:用于对集合中的元素进行聚合操作。例如:List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);int sum = list.stream().reduce(0, (a, b) -> a + b);上面的代码使用reduce()方法对集合中的元素进行求和操作。

groupingBy()方法:用于对集合中的元素进行分组操作。例如:List<Person> list = Arrays.asList(new Person("Tom", 20), new Person("Jerry", 22), new Person("Lucy", 20));Map<Integer, List<Person>> result = list.stream().collect(Collectors.groupingBy(Person::getAge));上面的代码使用groupingBy()方法对集合中的Person对象按照年龄进行分组。

posted @   jiangyang6634  阅读(42)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示