什么是Java 8 Stream API中的收集器的默认Set / List实现?

时间:2015-07-26 17:37:25

标签: java-8 java-stream collectors

我在Java 8下面有代码捕捉。

 List<Employee> employees = DataProvider.getEmployees();
 Set<Employee> set = employees.stream().filter(emp -> {
                System.out.println(emp.getName());
                return emp.getName().equals("Vishal");
            }).collect(Collectors.toSet());

我只是想知道在使用Set时我们使用默认值Collectors.toSet()的哪个实现(参见上面的示例)?

另外,有没有办法表明java API使用特定的实现(例如,HashSet)?

1 个答案:

答案 0 :(得分:5)

toSet()收集器未指定它使用的实现;你得到一个Set,这就是全部。

如果您需要特定类型的设置,请使用toCollection()并为您的设置提供工厂方法:

    ...collect(Collectors.toCollection(HashSet::new));