// map에서 단어들을 가져와서 ArrayList에 저장
List<String> words = new ArrayList<>(map.keySet());
// words 리스트를 정렬
Collections.sort(words, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// 자주 등장하는 단어 순서대로 정렬
if (Integer.compare(map.get(o1), map.get(o2)) != 0) {
return Integer.compare(map.get(o2), map.get(o1));
}
// 등장 횟수가 같으면 길이가 긴 단어가 먼저 오도록 정렬
if (o1.length() != o2.length()) {
return o2.length() - o1.length();
}
// 등장 횟수와 길이가 같으면 사전 순으로 정렬
return o1.compareTo(o2);
}
카테고리 없음