-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
java문법관련 질문드립니다.
20.11.15 14:49 작성 조회수 114
1
comparator 클래스 사용하시면서
return o1.start - o2.start;
하니 오름차순이 된다고 하셨는데
어떤 방법으로 이게 오름차순이 되는지 모르겠습니다.
Comparator 클래스는 어떤 객체이며 파라미터로 사용하는 o1 o2들은 어떤의미인가요?
답변을 작성해보세요.
2
푸샵맨 코딩스터디
지식공유자2020.11.16
안녕하세요.
Comparator 개념은 너무 많이 나오므로 숙달해야죠..비교할때 많이 쓰입니다.(2018년 카카오 블라인드에서 2-3개가 나왔습니다)
일단 Comparator를 알려면 , 아래내용을 아셔야합니다.
Comparator안에서 움직이는 것은 comparTo메소드입니다.
// 1. compareTo 테스트
public void compareToTest() {
Integer num = 5;
System.out.println(num.compareTo(3)); //1
System.out.println(num.compareTo(5)); //0
System.out.println(num.compareTo(88));//-1
}
비교하는값이 오른쪽이 크면 -1을 리턴합니다. 그래서 오름차순입니다.
이런식으로도 표현됩니다.
Comparator<Interval> Comp = new Comparator<Interval>() {
@Override
public int compare(Interval o1, Interval o2) {
// TODO Auto-generated method stub
return o1.start -o2.start;
}
};
요새 나오는 람다식은
Arrays.sort(intervals,(o1,o2)->o1.start-o2.start);
이렇게 해도 됩니다.
큰줄기만 썼는데 이해 안되시면 답글 달아주시면 예제를 올리도록하겠습니다.
감사합니다.
답변 1