Вы можете создать Comparator
, который сортирует на основе area
и получить Entry
из Map
Comparator<Map.Entry<String, Country>> comp =
Comparator.comparing((Entry<String, Country> entry)->entry.getValue().getArea());
Используя Collections.min
Collections.min(biggestCountries.entrySet(),comp);
Использование stream
Entry<String, Country> entry = biggestCountries.entrySet()
.stream()
.min(comp)
.orElse(null);
Если вы хотите получить только Country
, используйте stream
Country minCountry = biggestCountries.values()
.stream()
.min(Comparator.comparing(Country::getArea))
.orElse(null);
или используя Collections.min
Country minCountry = Collections.min(biggestCountries.values(),
Comparator.comparing(Country::getArea));