我有一张 map Map<String, SomeType>
其中 SomeType
的每个实例按名称添加,如 map.put(object.getName(), object)
。最终map.values()
中没有重复项.
现在,我想要一个 Set<SomeType>
从这张 map 中无需制作像 new HashSet<>(map.values())
这样的副本.
这可能吗,只有标准库才优先?
最佳答案
您已经知道如何使用 new HashSet<>(map.values())
来做到这一点。您无法直接获取一组值,因为这些值可能包含重复项。即使在您的特定 Map 中没有重复值,在通用 Map 中也可能存在重复值。
您可以使用 Java 8 Streams 执行某些操作,但与显式实例化 Set 相比,它没有任何优势。
Set<SomeType> values = map.values().stream().collect(Collectors.toSet());
关于java - 如何获取 Map.values 作为 Set 而不是 Collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29864709/