Получить первые 10 статей у которых больше всего лайков

public class Article {

private Long id;
private String name;
private final Set<Long> likes = new HashSet<>();

Одна запись в хешсете это 1 лайк }

Сами Статьи хранятся в private final Map<Long, Article> articles = new ConcurrentHashMap<>();

как получить первые 10 статей с большим количеством лайков, если лайков нет просто первые 10 статей.

Я получаю List<Article> articles = new ArrayList<>(getArticleStorage().getAll()); Дальше затрудняюсь как отсортировать их. Нужно использовать компаратор?

@Override
    public int compareTo(Article o) {
        int a = this.getLikes().size();
        int b = o.getLikes().size();
        return compareTo(b)
    }

пытаюсь сделать компаратор, не получется доделать его


Ответы (1 шт):

Автор решения: homgo

У вас в компараторе рекурсия. Должно быть что-то другое.

→ Ссылка