Java中的收集器 toSet() 和示例
Collectors toSet()返回一个收集器,它将输入元素累积到一个新的 Set 中。不保证返回的 Set 的类型、可变性、可序列化性或线程安全性。这是一个无序收集器,即收集操作不承诺保留输入元素的遇到顺序。
句法:
public static Collector> toSet()
在哪里:
- T:输入元素的类型。
- 接口 Collector
: 可变归约操作,将输入元素累积到可变结果容器中,在处理完所有输入元素后,可选择将累积结果转换为最终表示。归约操作可以顺序或并行执行。- T:归约操作的输入元素的类型。
- A:归约操作的可变累积类型。
- R:归约操作的结果类型。
- Set:不包含重复元素的集合。更正式地说,集合不包含一对元素 e1 和 e2 使得 e1.equals(e2),并且最多包含一个空元素。
返回值:将所有输入元素收集到一个集合中的收集器。
以下是说明 toSet() 方法的示例:
示例 1:
// Java code to show the implementation of
// Collectors toSet() function
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// creating a Stream of strings
Stream s = Stream.of("Geeks",
"for",
"GeeksforGeeks",
"Geeks Classes");
// using Collectors toSet() function
Set mySet = s.collect(Collectors.toSet());
// printing the elements
System.out.println(mySet);
}
}
输出:
[Geeks Classes, GeeksforGeeks, Geeks, for]
示例 2:
// Java code to show the implementation of
// Collectors toSet() function
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// creating a Stream of strings
Stream s = Stream.of("1", "2", "3", "4");
// using Collectors toSet() function
Set mySet = s.collect(Collectors.toSet());
// printing the elements
System.out.println(mySet);
}
}
输出:
[1, 2, 3, 4]