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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。