Algorithm/자바

자바 comparator

tjddneva 2022. 3. 30. 20:27

comparator 를 처음부터 끝까지 설명하기는 너무 기니까 그냥 내가 햇갈렸던거 쓸것이다.

 

custom comparator 를 구현할 때 비교하는 게 항상 헷갈렸는데 헷갈린 이유가 있었다.

 

{1,5} 를 정렬할 때 Comparator 안에서 "o1 = 5" "o1 = 1" 로 매개변수가 들어온다. 생각했던거랑 반대로 들어오기 때문에 늘 헷갈려서 죽었던 것이다. "거꾸로 인자가 들어오는데 비교를 하고 리턴이 음수일때 위치를 바꿔라"  로 반드시 기억해두자. c++ 처럼 좀 직관적으로 했으면 참 편할텐데... 

 

아 그리고 람다식으로 쓰는 표현도 알아두자.

 

Arrays.sort(arr, (o1,o2) -> {

 

       ......  return 양수하던가 음수 하던가 

});

 

TreeSet<Integer> ts = new TreeSet<>((o1,o2)-> {
    return o1-o2;
});

이런 식으로도 된다.

'Algorithm > 자바' 카테고리의 다른 글

자바 Map  (0) 2022.03.09
자바 String & StringBuilder  (0) 2022.03.07
자바 iterator  (0) 2022.03.07
자바 ArrayList  (0) 2022.03.06
자바 Set  (0) 2022.03.06