[1차원 배열 정렬]
1. Arrays.sort()
: 오름차순 정렬
int[] num = {1,5,4,3,2};
Arrays.sort(num);
for(int i = 0; i<num.length; i++){
System.out.println(num[i]);
}
//출력 결과 1 2 3 4 5
2. Collections.reverOrder()
: 내림차순 정렬
: Integer 타입이여야 사용이 가능하다.
int[] num = {1,5,4,3,2};
//int 타입의 경우 Integer로 변환 후 정렬을 해야 한다.(문자 배열은 생략 가능)
//Integer[] answer = Arrays.stream(num).boxed().toArray(Integer[]::new);
Arrays.sort(num, Collections.reverseOrder());
for(int i = 0; i<num.length; i++){
System.out.println(num[i]);
}
//출력 결과 5 4 3 2 1
** int 타입의 경우 Integer로 변환 후 내림차순 정렬이 가능함. (오름차순은 따로 변환할 필요 X)
[2차원 배열 정렬]
Arrays.sort와 Comparator 이용
* if문에서 o1[0]과 o2[0]을 비교하기 때문에 각 배열에서 첫번째 원소를 가지고 정렬을 진행하고 있으며, 만약 정렬하고자 하는 기준이 두번째 요소라면 0은 1로, 1은 0으로 변경하면 됨
1. 오름차순 정렬
int[][] num2 = {{1,2}, {4,5}, {2,3}, {3,4}};
Arrays.sort(num2, new Comparator<int[]>(){
@override
public int compare(int[] o1, int[] o2){
if(o1[0] == o2[0] {
return o1[1] - o2[1];
}
else return o1[0] - o2[0];
}
});
for(int i = 0; i<num2.length; i++{
System.out.println(num2[i][0] + " " + num2[i][1]
}
2. 내림차순 정렬(o1, o2의 위치만 변경하면 됨)
int[][] num2 = {{1,2}, {4,5}, {2,3}, {3,4}};
Arrays.sort(num2, new Comparator<int[]>(){
@override
public int compare(int[] o1, int[] o2){
if(o1[0] == o2[0] {
return o2[1] - o1[1];
}
else return o2[0] - o2[0];
}
});
for(int i = 0; i<num2.length; i++{
System.out.println(num2[i][0] + " " + num2[i][1]
}
'공부 자료 > 자바[JAVA]' 카테고리의 다른 글
[Java] 문자열/배열에 특정 값 포함 여부 확인 (0) | 2023.07.01 |
---|---|
[JAVA] 문자열(String)을 정수(int)로 변경 (0) | 2023.06.17 |
[JAVA] 대문자, 소문자 (대소문자) 변경 (0) | 2023.05.15 |
[Java] super & super() (0) | 2022.10.26 |
[Java] About 클래스와 객체 (0) | 2022.10.25 |