當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。