次の値を含むHashMapがあります。
Map<String, Integer> map = new HashMap<>();
map.put("name1", 3);
map.put("name2", 14);
map.put("name3", 4);
map.put("name4", 14);
map.put("name5", 2);
map.put("name6", 6);
値が最も高いすべてのキーを取得するにはどうすればよいですか?この例では、次のキーを取得します。
name2
name4
最初のステップは、最も高い値を見つけることです。
int max = Collections.max(map.values());
次に、マップのすべてのエントリを反復処理し、最大値に関連付けられたキーをリストに追加します。
List<String> keys = new ArrayList<>();
for (Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue()==max) {
keys.add(entry.getKey());
}
}
Java 8 Stream APIが気に入った場合は、次のことを試してください。
map.entrySet().stream()
.filter(entry -> entry.getValue() == max)
.map(entry -> entry.getKey())
.collect(Collectors.toList());
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加