private Set<Integer> keysForValue(Map<Integer, Set<Integer>> map, Integer value) {
Set<Integer> keysSetContainingValue = new HashSet<Integer>()。
for (Map.Entry<Integer, Set<Integer>> entry : map.entrySet() ) {
if(entry.getValue().contains(value)) keysSetContainingValue.add(entry.getKey() )。
}
return keysSetContainingValue。
}
uj5u.com熱心網友回復:
盡管你的標題是Map<String, List>,而在你的代碼中,你使用的是Map<Integer, Set> ...
return map.entrySet()
.stream()
.filter(entry -> entry.getValue().contains(value))
.map(Map.Entry::getKey)
.collect(Collectors.toSet())。
uj5u.com熱心網友回復:
使用keySet()進行映射,而不是entrySet()來擺脫多余的映射,可能會稍微好一點:
private Set<Integer> keysForValue(Map<Integer, Set<Integer>> map, Integer value) {
return map.keySet()
.stream() // Stream<Integer> of keys。
.filter(k -> map.get(k).contains(value))
.collect(Collectors.toSet())。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/333323.html
標籤:
