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}
注意:此方法最常用於創建不可變集合。
相關用法
- Java Collectors toList()用法及代碼示例
- Java Collectors toMap()用法及代碼示例
- Java Collectors groupingBy()用法及代碼示例
- Java Collectors averagingDouble()用法及代碼示例
- Java 8 Collectors averagingInt()用法及代碼示例
- Java 8 Collectors counting()用法及代碼示例
- Java Collectors toSet()用法及代碼示例
- Java Collectors averagingLong(ToLongFunction mapper)用法及代碼示例
- Java Collectors partitioningBy()用法及代碼示例
- Java Collectors minBy(Comparator comparator)用法及代碼示例
- Java Collectors maxBy(Comparator comparator)用法及代碼示例
- Java Java.util.Collections.rotate()用法及代碼示例
注:本文由純淨天空篩選整理自suman_ptnl大神的英文原創作品 Collectors collectingAndThen() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。