Collections.sort()

2022. 2. 23. 17:51·Programming/Java

오름차순/ 내림차순/ 대소문자 구분 없이 정렬

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class SortArrayList {
public static void main(String[] args) {
// ArrayList 준비
ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "B", "a"));
System.out.println("원본 : " + list); // [C, A, B, a]
// 오름차순으로 정렬
Collections.sort(list);
System.out.println("오름차순 : " + list); // [A, B, C, a]
// 내림차순으로 정렬
Collections.sort(list, Collections.reverseOrder());
System.out.println("내림차순 : " + list); // [a, C, B, A]
// 대소문자 구분없이 오름차순
Collections.sort(list, String.CASE_INSENSITIVE_ORDER);
System.out.println("대소문자 구분없이 오름차순 : " + list); // [a, A, B, C]
// 대소문자 구분없이 내림차순
Collections.sort(list, Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
System.out.println("대소문자 구분없이 내림차순 : " + list); // [C, B, a, A]
}
}

//출처: https://hianna.tistory.com/569 [어제 오늘 내일]

 

사용자 정의

1. Comparable

2. Comparator

 

Comparable

- 객체의 정렬 방식 정의

- 정렬할 객체가 Comparable interface를 구현

- 자기 자신과 매개변수를 비교

-  compareTo 메소드를 반드시 구현

class Fruit implements Comparable<Fruit> {
private String name;
private int price;
public Fruit(String name, int price) {
this.name = name;
this.price = price;
}
@Override
public int compareTo(Fruit fruit) {
if (fruit.price < price) {
return 1;
} else if (fruit.price > price) {
return -1;
}
return 0;
}
@Override
public String toString() {
return "[ " + this.name + ": " + this.price + " ]";
}
}

//출처: https://hianna.tistory.com/569 [어제 오늘 내일]

 

Comparator

- Custom Comparator

- Collection.sort() 또는 List.sort() 메소드의 파라미터로 전달

- 두 매개변수 객체를 비교

- compare 메소드를 반드시 구현

Collections.sort(list, new Comparator<Student>() {
            @Override
            public int compare(Student s1, Student s2) {
                if (s1.getScore() < s2.getScore()) {
                    return -1;
                } else if (s1.getScore() > s2.getScore()) {
                    return 1;
                }
                return 0;
            }
        });


//출처: https://includestdio.tistory.com/35 [includestdio]

 

오름차순

- 첫번 째 파라미터(또는 자신<- Comparable의 compareTo()에 해당) < 두번 째 파라미터, 리턴 -1 

- 첫번 째 파라미터(또는 자신<- Comparable의 compareTo()에 해당) > 두번 째 파라미터, 리턴 1

- 첫번 째 파라미터(또는 자신<- Comparable의 compareTo()에 해당) == 두번 째 파라미터, 리턴 0

 

내림차순

오름차순에서 부등호 반대

'Programming > Java' 카테고리의 다른 글

업캐스팅, 다운캐스팅  (0) 2022.02.23
ArrayList vs LinkedList  (0) 2022.02.23
Wildcard <?>  (0) 2022.02.22
Generic Method (Basic)  (0) 2022.02.22
Generic Class (Basic)  (0) 2022.02.22
'Programming/Java' 카테고리의 다른 글
  • 업캐스팅, 다운캐스팅
  • ArrayList vs LinkedList
  • Wildcard <?>
  • Generic Method (Basic)
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Process
    rotting oranges
    Thread
    fcfs
    @JsonNaming
    pacific atlantic water flow
    트랜잭션
    clone graph
    lower bounded wildcards
    디자인 패턴
    algorithm
    Oauth2
    추상화 클래스
    minimum number of arrows to burst balloons
    제네릭
    wildcards
    LinkedList
    runner 기법
    BFS
    socar
    @JsonProperty
    JSCode
    Generic
    준영속 엔티티
    AuthenticationSuccessHandler
    OS
    Climbing Stairs
    Reorder List
    운영체제
    RR
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
Collections.sort()
상단으로

티스토리툴바