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

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,可以写出更简洁、高效的代码。