当前位置: 首页 > 编程笔记 >

Java 8中的收集器collectionAndThen()方法

麹高远
2023-03-14
本文向大家介绍Java 8中的收集器collectionAndThen()方法,包括了Java 8中的收集器collecthtml" target="_blank">ionAndThen()方法的使用技巧和注意事项,需要的朋友参考一下

Java Collectors类中的collectingAndThen()方法调整收集器以执行额外的完成转换。它返回collector,collector执行下游collector的操作,然后执行附加的结束步骤。

语法如下。

static <T,A,R,RR> Collector<T,A,RR> collectingAndThen(Collector<T,A,R> downstream, Function<R,RR>
finisher)

在这里,参数

  • T-输入元素的类型

  • A-下游收集器的中间堆积类型

  • R-下游收集器的结果类型

  • RR-结果收集器的结果类型

  • downstream-Collector

  • finisher-应用于下游收集器最终结果的函数

要使用Java中的Collectors类,请导入以下包。

import java.util.stream.Collectors;

以下是collectingAndThen()在Java中实现方法的示例。

示例

import java.util.List;
import java.util.Collections;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Demo {
   public static void main(String[] args) {
      List<String> list
      = Stream.of("Demo1", "Demo2").collect(Collectors.collectingAndThen(
      Collectors.toList(),
      Collections::<String> unmodifiableList));
      System.out.println(list);
   }
}

输出结果

[Demo1, Demo2]
 类似资料:
  • 有没有java api可以让我跳过流直接操作集合(比如C#中的?):

  • 本文向大家介绍Java 8中的收集器partitioningBy()方法,包括了Java 8中的收集器partitioningBy()方法的使用技巧和注意事项,需要的朋友参考一下 该方法返回一个收集器,该收集器根据谓词对输入元素进行分区,并将它们组织成Map <Boolean,List <T >>。 语法如下。 在这里,参数 T-输入元素的类型 谓词-用于组织输入元素 要使用Java中的Colle

  • 我有以下课程。 我希望能够按年龄分组,然后收集人名列表,而不是人名对象本身;所有这些都在一个漂亮的lamba表达式中。 为了简化所有这些,我链接了当前的解决方案,该解决方案存储按年龄分组的结果,然后迭代它以收集名称。 当前解决方案 不理想,为了学习,我想有一个更优雅、更高效的解决方案。

  • 所以我试图使用Java8流Collectors.toMap添加元素到新创建的Map。 要创建的映射可能包含其某些键的空值。这对于HashMap来说是完全可以接受的,当我使用stream forEach添加成员时,它会按预期工作: msgRouteProps是一个映射,其中键和值都是非空的。请注意,ReflectionUtil。getNamedMethod()调用可能会返回null,我希望将其放入结

  • 我想迭代一个对象列表。每个对象都包含一些对象的变量。更具体地说: 我的名单是: 所需的映射结构是:

  • 问题内容: Java 8中有什么方法可以将一个元素分组而不收集它们?我希望结果再次出现。因为我必须处理大量数据甚至是无限流,所以我无法先收集数据并再次流处理结果。 所有需要分组的元素在第一流中都是连续的。因此,我喜欢使流评估保持懒惰。 问题答案: 无法使用标准Stream API做到这一点。通常,您无法执行此操作,因为将来总是有可能出现属于任何已创建组的新项目,因此,在处理所有输入之前,您无法将组