如何在HashMap中返回具有最多关联值的键
我目前有一个“HashMap<String, HashSet>”形式的 HashMap,它包含一个键(一个项目)和一个值(与该项目相关联的所有项目的 HashSet)。
我正在尝试在类中编写一个方法来检索具有与其关联的最多值(项目)的键(项目),但我不确定如何执行此操作,例如:
输入:
myItems.mostValues();
输出:
Item1 is has the most interactions, as it is connected to 3 items: {X, Y, Z}
回答
map.entrySet().stream()
.filter(entry -> entry.getValue() != null)
.max(Comparator.comparingInt(e -> e.getValue().size()))
.map(entry -> map.get(entry.getKey()));