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 |