📜  Java流 | Java中的收集器 toCollection()

📅  最后修改于: 2022-05-13 01:54:22.451000             🧑  作者: Mango

Java流 | Java中的收集器 toCollection()

Java中的Collectors toCollection(Supplier collectionFactory)方法用于使用 Collector 创建一个 Collection。它返回一个收集器,它将输入元素按照传递的顺序累积到一个新的集合中。

句法:

public static > Collector
      toCollection(Supplier collectionFactory)

在哪里:-

  • Collection :集合层次结构中的根接口。集合表示一组对象,称为其元素。一些集合允许重复元素,而另一些则不允许。有些是有序的,有些是无序的。
  • Collector< T, A, R > :一种可变归约操作,将输入元素累积到可变结果容器中,在处理完所有输入元素后,可选择将累积结果转换为最终表示。归约操作可以顺序或并行执行。
    • T :归约操作的输入元素的类型。
    • A :归约操作的可变累积类型。
    • R :归约操作的结果类型。
  • 供应商:一个功能接口,因此可以用作 lambda 表达式或方法引用的赋值目标。
  • collectionFactory :一个供应商,它返回一个适当类型的新的空集合。

参数:此方法采用Supplier类型的强制参数collectionFactory ,它返回适当类型的新的空 Collection。

返回值:此方法返回一个收集器,它将所有输入元素按遇到的顺序收集到一个集合中。

下面给出了一些示例,以更好地说明 toCollection() 的实现:

示例 1:

// Java code to demonstrate Collectors
// toCollection(Supplier collectionFactory) method
  
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // Creating a string stream
        Stream s = Stream.of("Geeks", "for", "GeeksClasses");
  
        // Using toCollection() method
        // to create a collection
        Collection names = s
                                       .collect(Collectors
                                                    .toCollection(TreeSet::new));
  
        // Printing the elements
        System.out.println(names);
    }
}
输出:
[Geeks, GeeksClasses, for]

示例 2:

// Java code to demonstrate Collectors
// toCollection(Supplier collectionFactory) method
  
import java.util.Collection;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // Creating a string stream
        Stream s = Stream.of("2.5", "6", "4");
  
        // Using Collectors toCollection()
        Collection names = s
                                       .collect(Collectors
                                                    .toCollection(TreeSet::new));
  
        // Printing the elements
        System.out.println(names);
    }
}
输出:
[2.5, 4, 6]