我试图将具有树集的列表的所有值树集元素放入linkedHashSet。该树集列表由values()TreeMap<String, TreeSet>方法返回。代码如下:

Map<String, TreeSet> sortedByMonthAndVarietyNameMap = new HashMap<>();
    sortedByMonthAndVarietyNameMap.values().stream().flatMap(monthList -> monthList.stream()).collect(Collectors.toCollection(LinkedHashSet::new));


这应该返回带有平面映射树集的所有元素的LinkedHashSet。但实际上,它返回类型为Object的对象。

为什么会这样呢?有人可以解释我在做什么错吗?

最佳答案

TreeSet没有完全键入:

Map<String, TreeSet<Integer>> sortedByMonthAndVarietyNameMap = new HashMap<>();
LinkedHashSet<Integer> result = sortedByMonthAndVarietyNameMap.values().stream()
        .flatMap(monthList -> monthList.stream())
        .collect(Collectors.toCollection(LinkedHashSet::new));

关于java - 为什么映射和收集树集列表会返回一个对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52611629/

10-11 10:35