Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

forDevLife

[자바의정석] Chap 11. 컬렉션 프레임워크(Arrays / comparator / comparable) 본문

Java

[자바의정석] Chap 11. 컬렉션 프레임워크(Arrays / comparator / comparable)

JH_Lucid 2021. 2. 8. 23:45

너무 어렵다. 아래는 최고의 정리 사이트이다.

 

요약하자면,

1) Arrays는 모두 static 메서드이다. 따라서 인스턴스 생성 없이 array.method_name으로 사용한다.

2) Arrays.sort()를 통해 배열을 정렬할 수 있다. 이 때 실제로는 sort에서 자동으로 comparator / comparable의 compare / compareTo를 호출하여 정렬한다.

3) comparable을 구현하려면, compareTo(Object o)를 오버라이딩 해야한다.

4) comparator를 구현하려면, compare(object o1, object o2)를 오버라이딩 해야한다.

5) comparable은 기본 정렬을 구현하는데 사용된다. 예를 들어 오름차순 / 내림차순이다.

6) comparator는 다른 기준으로 정렬하고자 할 때 사용된다. 예를 들어 학점이 같을 때 이름순으로 정렬 이런거?

7) compareTo / compare에서 리턴이 -1, 0이면 자리 유지,  1이면 자리 변경이다.

   예를 들어 compare(a, b)에서

   a < b : return -1

   a == b : return 0

   a > b : return 1

위와 같을 때, a < b 와 a == b 이면 자리가 유지되어  a, b 의 위치가 그대로 유지된다. 이는 오름차순이다.

8) main에서는 sort만 사용, 구현으로 오버라이딩 하는 부분에서 compare / compareTo를 작성하면 된다.

9) 보통 String / Integer 등은 compare / compareTo가 구현되어 있으므로 이를 활용하여 클래스를 구현한다.

10 comparator의 경우, 보통 익명 class로 구현한다. 책에서는 일반 클래스로 구현하였다.(comparator는 sort의 두번째 인자로 전달되므로, 한번만 사용되는 익명 class로 구현한다.)

 

https://m.blog.naver.com/occidere/220918234464

 

[정렬] Comparable과 Comparator

자바에서 정렬을 하다 보면 Comparable과 Comparator를 자주 마주치게 된다. 본 게시글에서는 Comparabl...

blog.naver.com

 

 

아래는 Arrays.sort와 collections.sort의 차이이다.

 

Arrays : 배열용 sort - quick sort 이용

Collections : List, set, Map등 Collection(Collections아님) 인터페이스 구현한 객체를 위한 sort - timsort 사용

 

https://devlog-wjdrbs96.tistory.com/68

 

[JAVA]Array.sort 와 Collections.sort 의 차이

두개의 차이는 그냥 직관적으로도 정렬을 해주는 역할이고, Array.Sort는 배열을 정렬해주는 것이고 Collections.sort는 클래스의 객체를 정렬해주는 것이라고 생각이 든다. 파이썬에서는 sort가 있어서

devlog-wjdrbs96.tistory.com

 

 

Comments