如何将Map.values作为集而不是集合?

Jim*_* T. 0 java collections dictionary

我有一个地图Map<String, SomeType>,其中每个实例SomeType都按名称添加map.put(object.getName(), object).最后,没有重复map.values().

现在,我想Set<SomeType>从这张地图中得到一张没有制作副本的东西new HashSet<>(map.values()).

这是可能的,仅限标准库吗?

Era*_*ran 5

你已经知道如何做到这一点new HashSet<>(map.values()).您无法直接获取一组值,因为值可以包含重复项.即使在您的特定Map中没有重复值,在一般Map中也可能存在重复值.

您可以使用Java 8 Streams执行某些操作,但它没有明确实例化Set的优势.

Set<SomeType> values = map.values().stream().collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)