您可以使用Eclipse Collections中的一些迭代模式来完成此操作。
MutableMap<Integer, Integer> map = UnifiedMap.newWithKeysValues(1, 4)
.withKeyValue(2, 2)
.withKeyValue(3, 4)
.withKeyValue(4, 2)
.withKeyValue(5, 4);
Integer maxValue = map.valuesView().max();
RichIterable<Pair<Integer,Integer>> pairs =
map.keyValuesView().select(
Predicates.attributeEqual(Functions.<Integer>secondOfPair(), maxValue));
Assert.assertEquals(
HashBag.newBagWith(Tuples.pair(1, 4), Tuples.pair(3, 4), Tuples.pair(5, 4)),
pairs.toBag());
如果您只需要每对中的密钥,则可以收集它们。
RichIterable<Integer> maxKeys = pairs.collect(Functions.<Integer>firstOfPair());
注意:我是 Eclipse Collections 的提交者。