使用Java 8 toMap函数将HashMap排序到存储桶中

时间:2016-04-28 19:45:59

标签: java lambda java-8 mapping

我想通过附加到每个键的特定 rank 对HashMap进行分组。密钥可以是 rank 1或2.因此,最后,应该以{{1​​}}的形式映射和输出给定的输入散列映射,如<String, Integer> - 其中密钥为输出映射是 rank ,值是原始输入映射中具有该等级的所有字符串的Set。如果输出映射中的集合按原始映射中的值的降序排序,那也很好。

以下是我最初的做法并且它有效,但我想使用toMap函数,感觉这个方法有点矫枉过正。

<Integer, Set<String>>

1 个答案:

答案 0 :(得分:3)

您正在寻找的不是toMap而是

iMap.entrySet().stream()
    .collect(groupingBy(
        Entry::getValue,
        mapping(Entry::getKey, toSet())));