当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Collectors collectingAndThen()用法及代码示例


Java中的类Collector的collectionAndThen(Collector下游,函数完成器)方法,该方法采用Collector,以便我们可以执行其他整理转换。

用法:

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

Where,
    
  • T:输入元素的类型
  • A:下游Collector的中间堆积类型
  • R:下游Collector的结果类型
  • RR:结果Collector的结果类型

参数:此方法接受下面列出的两个参数


  • downstream:它是Collector的一个实例,即我们可以在这里使用任何Collector。
  • finisher:它是一个函数的实例,该函数将应用于下游Collector的最终结果。

返回值:返回一个执行下游Collector动作的Collector,然后在finisher函数的帮助下执行附加的整理步骤。

以下示例说明了collectingAndThen()方法。

范例1:创建不可变列表

// Write Java code here 
// Collectors collectingAndThen() method 
  
import java.util.Collections; 
import java.util.List; 
import java.util.stream.Collectors; 
import java.util.stream.Stream; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
        // Create an Immutable List 
        List<String> lt 
            = Stream 
                  .of("GEEKS", "For", "GEEKS") 
                  .collect(Collectors 
                               .collectingAndThen( 
                                   Collectors.toList(), 
                                   Collections::<String> unmodifiableList)); 
        System.out.println(lt); 
    } 
}
输出:
[GEEKS, For, GEEKS]

范例2:创建一个难忘的集合。

// Write Java code here 
import java.util.Collections; 
import java.util.List; 
import java.util.Set; 
import java.util.stream.Collectors; 
import java.util.stream.Stream; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
        // Create an Immutable Set 
        Set<String> st 
            = Stream 
                  .of("GEEKS", "FOR", "GEEKS") 
                  .collect( 
                      Collectors 
                          .collectingAndThen(Collectors.toSet(), 
                                             Collections::<String> 
                                                 unmodifiableSet)); 
        System.out.println(st); 
    } 
}
输出:
[GEEKS, FOR]

范例2:创建一个不变的Map

import java.util.*; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
        // Create an Immutable Map 
        Map<String, String> mp 
            = Stream 
                  .of(new String[][] { 
                      { "1", "Geeks" }, 
                      { "2", "For" }, 
                      { "3", "Geeks" } }) 
                  .collect( 
                      Collectors 
                          .collectingAndThen( 
                              Collectors.toMap(p -> p[0], p -> p[1]), 
                              Collections::<String, String> 
                                  unmodifiableMap)); 
        System.out.println(mp); 
    } 
}
输出:
{1=Geeks, 2=For, 3=Geeks}

注意:此方法最常用于创建不可变集合。



相关用法


注:本文由纯净天空筛选整理自suman_ptnl大神的英文原创作品 Collectors collectingAndThen() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。