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对象按照年龄进行分组。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)