StreamAPI中常用的Java函数及其用法介绍?
发布时间:2023-09-30 11:35:59
Stream API是Java 8中新增的一种处理集合数据的方式,它提供了一种声明式的数据处理方式,可以简化代码,并提供了更高效、并行处理数据的能力。下面是一些常用的Java函数及其用法介绍。
1. filter:filter函数用于过滤集合中的元素,只保留满足条件的元素。例如,假设有一个包含整数的集合,我们可以使用filter函数筛选出大于10的整数。
List<Integer> numbers = Arrays.asList(1, 5, 10, 15, 20);
List<Integer> filteredNumbers = numbers.stream()
.filter(n -> n > 10)
.collect(Collectors.toList());
// 输出:[15, 20]
2. map:map函数用于将集合中的每个元素进行特定的操作,并返回操作后的结果。例如,假设有一个包含字符串的集合,我们可以使用map函数将每个字符串转换为大写。
List<String> names = Arrays.asList("john", "amy", "lisa");
List<String> upperCaseNames = names.stream()
.map(name -> name.toUpperCase())
.collect(Collectors.toList());
// 输出:[JOHN, AMY, LISA]
3. flatMap:flatMap函数用于将多个集合合并成一个集合,并进行相应的操作。例如,假设有两个包含字符串的集合,我们可以使用flatMap函数将它们合并,并将每个字符串转换为大写。
List<String> list1 = Arrays.asList("john", "amy", "lisa");
List<String> list2 = Arrays.asList("sam", "megan");
List<String> upperCaseNames = Stream.of(list1, list2)
.flatMap(Collection::stream)
.map(name -> name.toUpperCase())
.collect(Collectors.toList());
// 输出:[JOHN, AMY, LISA, SAM, MEGAN]
4. distinct:distinct函数用于去除集合中的重复元素。例如,假设有一个包含重复整数的集合,我们可以使用distinct函数将重复的整数去除。
List<Integer> numbers = Arrays.asList(1, 2, 3, 2, 4, 1, 3);
List<Integer> distinctNumbers = numbers.stream()
.distinct()
.collect(Collectors.toList());
// 输出:[1, 2, 3, 4]
5. sorted:sorted函数用于对集合中的元素进行排序。例如,假设有一个包含整数的集合,我们可以使用sorted函数将整数按升序排序。
List<Integer> numbers = Arrays.asList(5, 3, 2, 4, 1);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
// 输出:[1, 2, 3, 4, 5]
6. limit:limit函数用于限制集合中元素的数量。例如,假设有一个包含整数的集合,我们可以使用limit函数只保留前两个整数。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> limitedNumbers = numbers.stream()
.limit(2)
.collect(Collectors.toList());
// 输出:[1, 2]
以上介绍的只是Stream API中一部分常用的函数及其用法,Stream API还提供了更多的函数,如forEach、reduce、collect等,可以根据具体需求选择合适的函数进行处理。通过合理地利用Stream API,可以写出更简洁、高效的代码。
