JAVA - ArrayList 간단하게 정렬(sort)하기(오름차순&내림차순)

2023. 3. 10. 12:43·JAVA/기타

개요

JAVA언어에서 자주 사용하는 컬렉션중 하나인 ArrayList 간단한 방법으로 정렬하기

1. Collections.sort()

2. List.sort()

3. Stream sorted()


1. Collections.sort()

Java의 Collections 클래스는 ArrayList를 포함한 모든 컬렉션을 정렬하는 데 사용할 수 있는 sort() 메서드를 제공합니다. 오름차순으로 정렬하려면 인수 없이 sort() 메서드를 호출
내림차순으로 정렬하려면 Collections 클래스의 reverseOrder() 메서드를 sort()의 인수로 추가하여 호출

 

List<Integer> numberList = new ArrayList<>(List.of(23, 1000, -1, 0, -55, 7));

Collections.sort(numberList); // 오름차순 정렬
// numberList = [-55, -1, 0, 7, 23, 1000]

Collections.sort(numberList, Collections.reverseOrder()); // 내림차순 정렬
// numberList = [1000, 23, 7, 0, -1, -55]

2. List.sort() - JAVA8 이상

Java 8부터 List 인터페이스는 목록을 정렬하는 데 사용할 수 있는 기본 sort() 메서드를 제공합니다.

오름차순으로 정렬하려면 sort() 메서드의 인수에 null을 추가하여 호출
내림차순으로 정렬하려면 Collections 클래스의 reverseOrder() 메서드를 sort()의 인수로 추가하여 호출

 

List<Integer> numberList = new ArrayList<>(List.of(23, 1000, -1, 0, -55, 7));

numberList.sort(null); // 오름차순 정렬
// numberList = [-55, -1, 0, 7, 23, 1000]

numberList.sort(Collections.reverseOrder()); // 내림차순 정렬
// numberList = [1000, 23, 7, 0, -1, -55]

 

 

* Collections.sort() vs List.sort()
2가지 정렬 방법은 사용법이 거의 동일하며, 단순 비교가 가능한 자료형을 정렬할때 소스 또한 간결합니다.
눈에 띄는 차이가 있다면, List.sort()의 경우 JAVA8 이후 버전부터 사용 가능한 것..

다음은 최근 화제인 ChatGPT를 통해 위 2가지 정렬 방법의 성능 차이에 대한 답변 내용 입니다.
(ChatGPT가 엄청나긴 하지만, 가끔 엉뚱한 답변도 받곤 합니다. 아래 내용도 참고용으로만 확인해주세요.)

 


Stream sorted()

Java 8은 모든 스트림을 정렬하는 데 사용할 수 있는 sorted() 메서드를 제공하는 Stream API를 도입했습니다. stream() 메서드를 사용하여 ArrayList를 스트림으로 변환한 다음 sorted()를 호출하여 스트림을 정렬할 수 있습니다.

오름차순으로 정렬하려면 sorted()를 호출

내림차순으로 정렬하려면 Collections 클래스의 reverseOrder() 메서드를 sorted()의 인수로 추가하여 호출

 

List<Integer> numberList = new ArrayList<>(List.of(23, 1000, -1, 0, -55, 7));

numberList = numberList.stream().sorted().collect(Collectors.toList()); // 오름차순 정렬
// numberList = [-55, -1, 0, 7, 23, 1000]

numberList = numberList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); // 내림차순 정렬
// numberList = [1000, 23, 7, 0, -1, -55]

'JAVA > 기타' 카테고리의 다른 글

JAVA(spring) - HTTP 통신 방식 3가지(RestTemplate, WebClient, OpenFeign)  (0) 2023.05.23
Java - String(문자열) .isEmpty() vs .isBlank() 차이점  (0) 2022.12.15
Springboot에서 CircuitBreaker 설명 및 사용법  (0) 2022.11.29
퀵 정렬(Quick Sort)  (9) 2015.10.26
삽입 정렬(Insertion Sort)  (5) 2015.10.26
'JAVA/기타' 카테고리의 다른 글
  • JAVA(spring) - HTTP 통신 방식 3가지(RestTemplate, WebClient, OpenFeign)
  • Java - String(문자열) .isEmpty() vs .isBlank() 차이점
  • Springboot에서 CircuitBreaker 설명 및 사용법
  • 퀵 정렬(Quick Sort)
99CORN
99CORN
1990.09.17
  • 99CORN
    넌 잘하고 있어
    99CORN
  • 전체
    오늘
    어제
    • -
      • IT
        • 잔기술
        • 네트워크
        • 면접 예상 질문
      • JAVA
        • 알고리즘
        • 기타
      • PHP
        • 기초
      • C#
        • 기초
      • 개발메모
        • 간단정리
        • WEB
        • 면접준비
        • 기타
      • 블랙홀
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • forl
  • 공지사항

  • 인기 글

  • 태그

    docker
    캐시스탬피드
    SERVER 환경변수
    자바
    JsonVue
    알고리즘
    php 배열관련 함수
    OpenFeign
    Algorithm
    문자열 대표 클래스
    JavaScript
    graphQL
    Queue
    HTTP
    springboot + graphql
    php
    stack
    JDK Dynamic Proxy
    c#
    vParam
    선택정렬
    웹개발
    sort
    console.table()
    http 상태
    Java
    web
    기본문법 정리
    격리수준
    https status code
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
99CORN
JAVA - ArrayList 간단하게 정렬(sort)하기(오름차순&내림차순)
상단으로

티스토리툴바