• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

java문법관련 질문드립니다.

20.11.15 14:49 작성 조회수 114

1

comparator 클래스 사용하시면서

return o1.start - o2.start; 

하니 오름차순이 된다고 하셨는데 

어떤 방법으로 이게 오름차순이 되는지 모르겠습니다.

Comparator 클래스는 어떤 객체이며 파라미터로 사용하는 o1 o2들은 어떤의미인가요?

답변 1

답변을 작성해보세요.

2

안녕하세요.

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);

이렇게 해도 됩니다.

큰줄기만 썼는데 이해 안되시면 답글 달아주시면 예제를 올리도록하겠습니다.

감사합니다.