📜  Java中的收集器 toSet() 和示例(1)

📅  最后修改于: 2023-12-03 15:02:02.284000             🧑  作者: Mango

Java中的收集器 toSet() 和示例

在Java中,我们常常需要对数据进行聚合和去重操作。这时候就可以使用Java提供的收集器 toSet() 来实现。通过 toSet() 方法,我们可以将一个集合转换成一个不含重复元素的 Set 集合。

toSet() 方法的使用

toSet() 方法是 Stream API 中的一个 collect() 方法的辅助方法,用于将流中的元素转换成一个 Set 集合。

下面是 toSet() 方法的基本语法:

Set<T> set = stream.collect(Collectors.toSet());

该方法返回一个不含重复元素的 Set 集合。其中,T 代表具体的数据类型。stream 是一个流对象,Collectors 是一个工具类,toSet() 则是该工具类提供的一个方法。

toSet() 方法可以接受一个 Function 参数,该参数用于对流中的元素进行转换,转换后的结果放入 Set 集合中。例如:

Set<Integer> set = stream.map(x -> x * x).collect(Collectors.toSet());

该代码将 stream 中的元素依次平方,然后转换成一个不含重复元素的 Set 集合。

toSet() 方法的示例

下面是一个示例,演示了如何使用 toSet() 方法对 List 中的元素进行去重:

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class ToSetExample {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(3);
        list.add(3);
        list.add(3);

        Set<Integer> set = list.stream().collect(Collectors.toSet());
        System.out.println(set);
    }
}

输出:

[1, 2, 3]

以上代码首先创建了一个 List 对象 list,其中包含了几个重复的元素。然后使用 stream() 方法将其转换成一个流对象,并使用 toSet() 方法将其转换成一个不含重复元素的 Set 集合。

总结

toSet() 方法是Java中的一个常用收集器,它可以将一个集合转换成一个不含重复元素的 Set 集合。通过 toSet() 方法,我们可以轻松实现去重操作。同时,我们还可以使用 toSet() 方法的重载形式对数据进行转换,得到符合我们要求的集合。