자바 ArrayList 정렬 메커니즘 질문

자바 ArrayList 정렬 메커니즘 질문

작성일 2021.12.29댓글 1건
    게시물 수정 , 삭제는 로그인 필요

자바에서 ArrayList를 정렬할 때 Collections.sort을 사용해서 정렬하던데, 이 때 comparable 인터페이스나 comparator 인터페이스를 사용해서 각각 comparTo랑 compare을 오버라이딩해서 사용하던데, 

ArrayList  / Collections.sort / comparable(혹은 comparator) / comparTo(혹은 compare)

이 (질문1)네가지가 상호작용하는 메커니즘, 그리고 (질문2)comparTo(혹은 compare)을 정의 할 때 리턴값에 따른 정렬 방식도 어떤 메커니즘인지 잘 모르겠습니다. 때문에 문법이 잘 이해되지가 않네요.
어찌저찌 인터넷에 있는 예시들을 보고해서 오류없이 실행은 되는데, 하고나서도 잘 모르겠어서 이렇게 질문 드립니다.

아래는 제가 연습으로 코딩한 것인데, 설명해주실 때 예시로 들어주실만한게 없으면,
아래것을 예시로 해주신다면 감사하겠습니다!

// private void calSort(ArrayList<testList> list) 
// {
// Collections.sort(list, new Comparator<testList>() 
//         {
//         @Override
//         public int compare(testList t1, testList t2)
//         {
//         if(t1.getSum() > t2.getSum())
//         {
//         return -1;
//         }
//         else if(t1.getSum() <  t2.getSum())
//         {
//         return 1;
//         }
//         return 0;
//         }
//         }
//         );
// }




#자바 arraylist #자바 arraylist 정렬 #자바 arraylist 출력 #자바 arraylist 배열 #자바 arraylist 2차원 배열 #자바 arraylist 값 가져오기 #자바 arraylist 초기화 #자바 arraylist remove #자바 arraylist 중복 제거 #자바 arraylist 길이

profile_image 익명 작성일 -

Collections.sort의 매개변수를 보면 list가 있는데 이것은 list를 정렬한다는 것입니다. 그리고 다른 매개변수가 Comparator인데 이것은 정렬하는 방식을 설정하는 것입니다. sort뒤에 익명클래스로 Comparator를 구현을 하는데 여기에 있는 compare를 구현을 해야 합니다. compare에는 두개의 매개변수가 있는데 첫번째는 리스트에 있는 앞 원소이고 두번째는 리스트에 있는 다음 원소인데 이 두 개의 원소들을 비교하여 자리교환을 해야 하느냐 안 하느냐를 결정하는 것입니다. 이 compare메소드를 구현을 해주면 두 개의 원소들을 비교하여 앞 원소가 클 경우 자리교환이 일어나는 것입니다. 이런 방식으로 리스트를 정렬하는 것입니다.

그런데 @Override 애노테이션이 있고 compare의 매개변수의 타입들이 testList인데 이 경우 오버라이딩이 안 될수도 있지 않나 생각이 듭니다. @Override가 있어서 반드시 오버라이딩이 되어야 한다는 것을 지시한다면 @Override가 오버라이딩을 할 수 없는 경우에 붙는 경우와 구별이 안 되는 것 같습니다. @Override가 오버라이딩이 안 되는 경우에 붙는 경우와 반드시 오버라이딩을 하는 방향으로 지시를 내리는 것인지에 관한 구별을 어떻게 해야하는지가 분명하지 않는 것 같습니다.

자바 ArrayList 정렬 메커니즘 질문

자바에서 ArrayList정렬할 때 Collections.sort을 사용해서 정렬하던데, 이 때... 상호작용하는 메커니즘, 그리고 (질문2)comparTo(혹은 compare)을 정의 할 때...

자바 arraylist 질문

... 오름차순 정렬과 갑자기 ListExam이 갑자기 나와서 해결하지 못해 질문... write(ArrayList alist) { for(Person person : alist) System.out....

[급함!!] 자바 arraylist sort요~

안녕하세요~ ArrayList sort 질문입니다.. 전화번호 주소록이란... 기본적으로 오름차순으로 정렬을 해야 하니까 대상1과 대상2에서 대상1...

자바(Java) 정렬 질문

Model.java public class Model{ public ArrayList studentList; studentlist = new ArrayList... 순으로 정렬을 해서, 수학 성적이 가장 높은 학생이...

자바 정렬 검색에 관한 질문입니다.

자바에서 ArrayList를 사용해서 문자열을 입력했습니다.. 근데 WinDOw,A Dos,C JSP,F... 알려주세여 ArrayList는 별도의 정렬 메소드가 없습니다. 그렇기 때문에 스트링을 일일이...

자바 코드 질문입니다

... Comparable을 구현하지 않는다면 정렬할 방법이 없으므로 불가합니다. [Java] Comparable, Comparator를 이용한 ArrayList 정렬 (tistory.com)

자바 질문있습니다

... List 중에서 ArrayList를 사용한다. l 리스트를 출력한다. 출력할 때는 iterator를 사용한다. l list를 정렬한다. list를 오름차순으로...

자바 질문

... new ArrayList<>(); 즉 제네릭으로 선언한 배열기반 컬렉션 클래스인데요 public void bubbleSort(Student[] input, int length){ 버블정렬실행 코드~~ } 에서...