Есть Map<String, Warp>
.
У класса Warp
есть метод getVisits();
Мне нужно получить 10 наиболее посещаемых варпов (getVisits();
- количество посещений). Как это сделать правильно?
Ваш класс:
class Warp implements Comparable<Warp> {
private int visits;
public Warp(int visits) {
this.visits = visits;
}
// getters & setters
@Override
public int compareTo(@NotNull Warp o) {
return this.visits - o.visits;
}
@Override
public String toString() {
return "Warp{" +
"visits=" + visits +
'}';
}
}
Создаём и заполняем map
:
Map<String, Warp> map = new HashMap<>();
for (int i = 100; i > 0; i--) {
map.put("test_" + i, new Warp(i));
}
Если вывести map
в консоль:
{test_39=Warp{visits=39}, test_38=Warp{visits=38}, test_37=Warp{visits=37}, ..., test_86=Warp{visits=86}, test_85=Warp{visits=85}, test_84=Warp{visits=84}, test_83=Warp{visits=83}}
Сортируем и собираем в список:
List<Warp> list = map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.map(Map.Entry::getValue)
.limit(10)
.collect(Collectors.toList());
Выводим list
в консоль:
[Warp{visits=1}, Warp{visits=2}, Warp{visits=3}, Warp{visits=4}, Warp{visits=5}, Warp{visits=6}, Warp{visits=7}, Warp{visits=8}, Warp{visits=9}, Warp{visits=10}]
В вашем случае нужен обратный порядок сортировки:
.sorted(Collections.reverseOrder(Map.Entry.comparingByValue()))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно чтобы изображение которое загружалось jLable в приняло размеры такие как сам компонент jLabel Вот код, что здесь нужно добавить?
Имеется viewpaget, он имеет 3 фрагментаНа центральном фрагменте (2) у нас есть горизонтальный кастомный recycler view с карточками
Как можно открыть 2Gis из своего приложения и сразу передать адреса(начальная точка и конечная) чтобы построить маршрут?
Добрый день! Хочется получить историю сделок по паре за последние 3 секундыВсе время при любых комбинациях возникает ошибка: Exception in thread "main"...