Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 서로소
- 알고리즘 그래프
- 자바입출력
- 순열 재귀
- Java
- 알고리즘
- 후위표기
- 자바스크립트 이벤트처리
- parseInt()
- java Collections.sort()
- 자바 조합 재귀
- char to str
- 재귀
- 자바 재귀 조합
- java 내부 클래스
- 순열코드
- inner class
- 재귀함수
- java lambda
- jquery dom 계층 선택자
- str to char array
- Interface
- 조합 재귀
- 자바 순열 코드
- jquery 이벤트 처리
- jquery 필터선택자
- 자바
- 상속
- 자바스크립트 이벤트중지
- jquery 속성선택자
Archives
- Today
- Total
유블로그
[알고리즘] JAVA 정렬 API 본문
java.lang.Comparable<T>
- int compareTo(T other)
- 자신과 인자로 전달 받는 타 원소와 비교하여 정수 리턴
- a.compareTo(b)
- 음수 : a가 더 작다. 그대로
- 0 : a = b
- 양수 : b 가 더 크다. 자리 바꾼다
- 오름차순 정렬 됨
class A implements Comparable <A> {
int num;
A(int num){
this.num = num;
}
@Override
public int compareTo(A o){
return this.num - o.num; // 정렬 기준은 하나 밖에 안됨.
// 양수와 음수가 섞여있을 때 오버플로우 방지하려면
// return Integer.compare(this.num, o.num); 하면 됨
}
}
public static void main(String[] args){
A[] arr = new A[3];
arr[0] = new A(4);
arr[1] = new A(2);
arr[2] = new A(3);
Arrays.sort(arr);
for(A a : arr)
System.out.println(a.num); // 출력결과 : 2 3 4
}
Arrays.sort(Object[] a, Comparator cp)
java.util.Comparator<T>
- int compare(T o1, T o2)
- 비교 대상의 두 원소가 아닌 별도의 도우미 역할
- 두 원소 o1, o2 비교하여 정수 리턴
import java.util.Arrays;
import java.util.Comparator;
class A {
int a, b;
A(int a, int b){
this.a = a;
this.b = b;
}
@Override
public String toString() {
return "(" + this.a + ", " + this.b + ")";
}
}
class AComparator1 implements Comparator<A> {
@Override
public int compare(A o1, A o2){
return o1.a - o2.a;
// 양수와 음수가 섞여있을 때 오버플로우 방지하려면
// return Integer.compare(o1.a, o2.a); 하면 됨
}
}
class AComparator2 implements Comparator<A> { // 정렬 기준별로 여러 개 생성 가능
@Override
public int compare(A o1, A o2){
return (o1.b - o2.b) * -1; // 내림차순
}
}
public class test {
public static void main(String[] args){
A[] arr = new A[3];
arr[0] = new A(4, 0);
arr[1] = new A(2, 3);
arr[2] = new A(5, 1);
Arrays.sort(arr, new AComparator1()); // (2,3) (4,0) (5,1)
System.out.println(Arrays.toString(arr));
Arrays.sort(arr, new AComparator2()); // (2,3) (5,1) (4,0)
System.out.println(Arrays.toString(arr));
}
}
'알고리즘' 카테고리의 다른 글
[알고리즘] 리스트 (0) | 2020.08.09 |
---|---|
[알고리즘] 탐욕(Greedy) 알고리즘 (0) | 2020.08.06 |
[알고리즘] 최소 신장 트리(MST) - KRUSKAL 알고리즘 (0) | 2020.08.06 |
[알고리즘] 이진트리 순회(traversal) (0) | 2020.08.06 |
[알고리즘] BFS, DFS (0) | 2020.08.04 |