3

我在 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)?

4

1 回答 1

7

收集toSet()器没有指定它使用哪个实现;你得到一个Set,就是这样。

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

    ...collect(Collectors.toCollection(HashSet::new));
于 2015-07-26T17:48:57.473 回答