Java/코딩테스트
[JAVA] List<String> 정렬 (기본 정렬, 커스텀 정렬)
_JHS_
2025. 2. 14. 13:39
1. 기본 정렬 => 사전 순으로 정렬
- 오름차순 정렬 [Collections.sort(list) ]
public class Main {
public static void main(String[] args) throws IOException{
List<Integer> list = Arrays.asList(3,1,4,2);
Collections.sort(list);
for(int i : list){
System.out.print(i + " "); // apple banana kiwi pear
}
}
}
- 내림차순 정렬 [ Collections.sort(list, Collections.reverseOrder()) ]
public class Main {
public static void main(String[] args) throws IOException{
List<String> list = Arrays.asList("banana","apple","pear","kiwi");
Collections.sort(list,Collections.reverseOrder());
for(String s : list){
System.out.print(s + " "); //pear kiwi banana apple
}
}
}
2. 커스텀 정렬 => new Comparator<?>() 활용, (백준 1181번. 단어 정렬 문제 풀이 가능)
문제: 단어의 길이가 짧은 순으로 정렬, 단어의 길이가 같다면 사전 순으로 정렬
public class Main {
public static void main(String[] args) throws IOException{
List<String> list = Arrays.asList("banana","apple","pear","kiwi");
Collections.sort(list,new Comparator<String>() {
@Override
public int compare(String s1, String s2){
if(s1.length() == s2.length()) return s1.compareTo(s2);
return s1.length() - s2.length();
}
});
for(String s : list){
System.out.print(s + " "); //kiwi pear apple banana
}
}
}