N - palavras mais frequentes em java ArrayList

Preciso encontrar as palavras mais frequentes (n palavras, portanto, se n = 5, as 5 palavras mais frequentes) em um ArrayList.

private ArrayList<String> wordList = new ArrayList<String>();


public ArrayList<String> mostOften(int k)
{
    ArrayList<String> lista = new ArrayList<String>();
    Set<String> unique = new HashSet<String>(wordList);
    for (String key : unique) 
        System.out.println(key + ": " + Collections.frequency(wordList, key));

    return lista;
}

A função precisa retornar uma lista das palavras mais frequentes, classificadas por frequência. Se duas palavras tiverem a mesma frequência, preciso ordená-las alfabeticamente. Postei o que tentei, mas isso só encontra a frequência e não sei como fazer o resto. Qualquer ajuda?

questionAnswers(4)

yourAnswerToTheQuestion