프로그래밍 공부/JAVA
[JAVA] 정렬(Sorting)
valid_ming
2021. 3. 8. 20:12
Arrays.sort
자바에서 제공해주는 sort 메서드를 이용하여 쉽게 배열을 정렬할 수 있다.
오름차순 정렬(default): Arrays.sort()
import java.util.Arrays //정렬 메서드를 사용하기 위해 포함한다.
public class Main{
public static void main(String[] args){
int[] intArray = {5,1,3,2,4};
String[] stringArray = {"banana", "apple", "peach"};
Arrays.sort(intArray); //결과: 1,2,3,4,5
Arrays.sort(stringArray);//결과: "apple", "banana", "peach"
}
}
숫자와 문자와 같이 복합적으로 나타나는 배열을 정렬하게 되면
숫자 > 대문자 > 소문자 > 한글 순으로 정렬이 된다.
내림차순 정렬 : Arrays.sort(arr, Collections.reverseOrder())
import java.util.Arrays //정렬 메서드를 사용하기 위해 포함한다.
import java.util.Collections //collection 매서드를 사용하기 위해 포함
public class Main{
public static void main(String[] args){
int[] intArray = {5,1,3,2,4};
String[] stringArray = {"banana", "apple", "peach"};
Arrays.sort(intArray, Collections.reverseOrder()); //결과: 5,4,3,2,1
Arrays.sort(stringArray, Collections.reverseOrder());//결과:"peach","banana","apple"
}
}
Collections.sort
자바 collection을 이용한 배열들은 collection.sort를 이용하여 쉽게 정렬할 수 있다.
오름차순 정렬(default): Collections.sort()
import java.util.Arrays;
import java.util.Collections;
public class Main{
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(5);
list.add(4);
list.add(2);
list.add(3);
Collections.sort(list); //결과: 1,2,3,4,5
}
}
한글 > 소문자 > 대문자 > 숫자 순으로 정렬된다.
내림차순 정렬: Collections.reverse()
import java.util.Arrays;
import java.util.Collections;
public class Main{
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(5);
list.add(4);
list.add(2);
list.add(3);
Collections.reverse(list); //결과: 5,4,3,2,1
}
}
객체 정렬
Comparable 인터페이스를 이용하여 다양한 element가 존재하는 클래스도 정렬 가능하다.
import java.util.Collections;
public class Main{
public static class Student implements Comparable<Student>{
int num;
String name;
@Override
public int compareTo(Student o){
return this.num-o.num; //오름차순 정렬
}
}
public static void main(String[] args){
ArrayList<Student> s= new ArrayList<Student>();
Collections.sort(s);
}
}