10. 컬렉션의 정렬

2024. 1. 1. 09:52·JAVA/컬렉션과 자료구조
반응형

⭐정렬의 필요성

정렬은 항상 필요한 과정이다. 오브젝트를 찾을 때나 원하는 값을 찾을 때 항상 필요하므로, 어떻게 해야 정렬하는지 알아두는 것이 중요하다

📚정렬의 기본 조건

  • 일단 수정 가능한 리스트여야한다
    • ex) ArrayList
    • 수정 가능한 리스트가 아니라면 생성자를 통해 수정가능한 리스트로 만들어야한다.

      💬 정수의 정렬

      ✅ collection의 static메서드를 활용

  • 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);
반응형

'JAVA > 컬렉션과 자료구조' 카테고리의 다른 글

15. Queue  (1) 2024.01.01
14. Set인터페이스 실습  (0) 2024.01.01
13. 트리  (1) 2024.01.01
12. 해싱  (1) 2024.01.01
9. 컬렉션  (0) 2024.01.01
'JAVA/컬렉션과 자료구조' 카테고리의 다른 글
  • 14. Set인터페이스 실습
  • 13. 트리
  • 12. 해싱
  • 9. 컬렉션
cvcvcx9
cvcvcx9
프로그래머
  • cvcvcx9
    참치와 연어가 좋아
    cvcvcx9
  • 전체
    오늘
    어제
    • 전체보기 (90)
      • JAVA (22)
        • 웹 프로그래밍 딥하게 파보기 (7)
        • String (2)
        • 자바의 다양한 객체 (3)
        • 클래스와 인터페이스, 추상클래스 (2)
        • 컬렉션과 자료구조 (6)
        • 제네릭 (0)
      • SPRING (3)
      • JPA 게시판 (19)
        • JPA게시판 만들기 (7)
        • JPA (10)
        • Spring Security (2)
        • 오류정리 (0)
      • 코딩테스트 준비 (4)
        • 자료구조 (3)
      • Python (21)
        • Django (21)
      • 컴퓨터 기초 (8)
        • 컴퓨팅사고 (7)
      • Web (7)
        • 유용한 설정 (6)
        • Git 관련 (1)
      • 데이터베이스 (1)
        • 친절한 SQL튜닝 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 인기 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
cvcvcx9
10. 컬렉션의 정렬
상단으로

티스토리툴바