코테/개인적으로 헷갈리는 거

Comparable vs Comparator

imname1am 2023. 10. 24. 23:41
반응형

📍 Comparable - int compareTo(T other)

- 자신과 인자로 받는 타 원소와 비교해 정수 리턴

(양수 : 오름차순 정렬 / 음수 : 내림차순 정렬 / 0 : 같음)

- 정렬 기준이 여러 개

- 원래 클래스, 실전 클래스에 영향을 미쳐 수정된다.

class Node implements Comparable<Node> {
    int s, e;	// 시작점, 끝점
    
    public Node(int s, int e) {
    	this.s = s;	// this는 현재 객체
        this.e = e;
    }
    
    @Override
    public int compareTo(Node n) {	// 시작점 기준 오름차순 정렬
    	return this.s - n.s;
    }
}

// 람다식 ver.) Arrays.sort(arr, (a, b) -> a.s - b.s);

 

 

📍 Comparator - int compare(T o1, T o2)

- 외부 정렬 기준 

- 단일 기준

- 두 원소 비교해 정수 리턴

(양수 : 오름차순 정렬 / 음수 : 내림차순 정렬 / 0 : 같음)

- 원래 클래스에 영향을 미치지 않는다.

Arrays.sort(arr, new Comparator<Node> {
    @Override
    public int compare(Node a, Node b) {
    	return a.s - b.s;
    }
});

 

 


(참고)

 

[Java] Comparable, Comparator, 정렬 방법

필자는 무언가 정렬을 잘 못하는것을 최근 깨달았다. 그래서 이번에는 자바에서 정렬을 하는 방법을 학습하려고 한다. 이게 이런게 참 기초이지만 모르는다는것에 부끄러움을 사알짝 느끼면서

tech-monster.tistory.com

 

자바 [JAVA] - Comparable 과 Comparator의 이해

아마 이 글을 찾아 오신 분들 대개는 Comparable과 Comparator의 차이가 무엇인지 모르거나 궁금해서 찾아오셨을 것이다. 사실 알고보면 두 개는 그렇게 어렵지 않으나 아무래도 자바를 학습하면서 객

st-lab.tistory.com

 

Java: Comparable(compareTo())와 Comparator(compare())의 차이점

Java: Comparable(compareTo())와 Comparator(compare())의 차이점 오버라이딩과 오버로딩을 헷갈려하던 시절처럼 나란 녀석은 Comparable과 Comparator / compareTo()와 compare()를 계속 헷갈려하는 것이다... 더이상의 뇌

sslblog.tistory.com

 

CompareTo 와 Compare 메소드

java.lang.Comparable int compareTo(T other) 자신과 인자로 전달받는 타 원소와 비교하여 정수를 리턴한다. 음수 결과: 타 원소가 크다. 0 결과 : 두 원소가 같다. 양수 결과 : 자신이 크다. java.util.Comparator int

velog.io

 

Comparable, Comparator 차이

Comparable은 Java.lang package에 있는 인터페이스이며 정렬을 위해 사용되는데, 보통 기본형(Primitive Type)을 정렬하는데 사용하지는 않습니다.Comparable을 사용하는것은 객체(Object)의 정렬기준을 만들어

velog.io

 

compareTo()

 

Java - compareTo(), 객체 크기 비교

compareTo() 함수를 사용하여 숫자, 문자열 등의 객체를 비교할 수 있습니다. A.compareTo(B)의 결과 값으로 결과 값으로 0, 양수, 음수가 리턴될 수 있으며, 아래와 같은 의미를 갖고 있습니다. 자신이

codechacha.com

 

 

 

반응형