반응형
⭐정렬의 필요성
정렬은 항상 필요한 과정이다. 오브젝트를 찾을 때나 원하는 값을 찾을 때 항상 필요하므로, 어떻게 해야 정렬하는지 알아두는 것이 중요하다
📚정렬의 기본 조건
- 일단 수정 가능한 리스트여야한다
- ex)
ArrayList
- 수정 가능한 리스트가 아니라면 생성자를 통해 수정가능한 리스트로 만들어야한다.
💬 정수의 정렬
✅ collection의 static메서드를 활용
- ex)
Collections.sort(nubmersAl)
를 활용한다.numbersAl
이 정렬된 상태로 저장됨- [3,6,1,2]였다면, [1,2,3,6]으로 배열이 변경됨
- 역으로 내림차순으로 정렬하고싶으면 아래와 같이 해야함
Collections.sort(numbersAl,Collections.reverseOrder());
💬 객체끼리의 비교
✅ Collections.sort()의 기본조건
기본적으로 위 메서드의 인수로 사용되는 리스트는
Comparable
인터페이스를 구현하고있어야한다.위 인터페이스를 구현하지 않은 경우에는 비교가 불가능해서, 정렬이 되지 않는다.
Student
라는클래스
의 객체를 정렬하기 위해서는 아래와 같이Comparator
를 구현해야한다.class Asc implements Comparator<Student>{ @Override public int compare(Student o1, Student o2) { return Integer.compare(o1.getId(),o2.getId()); } }
그러면 아래와 같은 코드로 정렬이 가능해진다.
List<Student> students = List.of(조창훈,박미경,조민성); ArrayList<Student> studentsAl = new ArrayList<>(students); studentsAl.sort(new Asc()); System.out.println(studentsAl);
반응형