새소식

Java/Java

java - 객체가 저장된 List 오름차순과 내림차순 정렬

  • -

개요

  • 일반 문자, 숫자를 저장한 리스트를 정렬할때와는 달리 객체를 오름/내림차순으로 정렬할때는 어떤 것을 기준으로 정렬할지 정해주어야 한다.
  • Collections 클래스에서 제공해주는 메소드를 이용하여 정렬을 진행한다.

오름차순 정렬

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 정렬할 리스트 생성
        List<Article> articles = new ArrayList<>();
        articles.add(new Article(1, "제목1"));
        articles.add(new Article(3, "제목3"));
        articles.add(new Article(4, "제목4"));
        articles.add(new Article(2, "제목2"));

        // Collections.sort 기능을 이용한다.
        Collections.sort(articles, new Comparator<Article>() {
            @Override
            public int compare(Article o1, Article o2) {
            // 리턴값에 어떤것을 기준으로 정렬할 것인지 정해주어야 한다. 결과값이 양수이면 o1과 o2의 자리를 바꾸고 음수라면 바꾸지 않는다.
                return o1.id - o2.id;
            }
        });
        // 출력
        for(Article article : articles){
            System.out.println(article.id + " : " + article.title);
        }
    }
}

// 객체 생성
class Article {
    int id;
    String title;

    Article(int id, String title){
        this.id = id;
        this.title = title;
    }
}

내림차순 정렬

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 정렬할 리스트 생성
        List<Article> articles = new ArrayList<>();
        articles.add(new Article(1, "제목1"));
        articles.add(new Article(3, "제목3"));
        articles.add(new Article(4, "제목4"));
        articles.add(new Article(2, "제목2"));

        // Collections.sort 기능을 이용한다.
        Collections.sort(articles, new Comparator<Article>() {
            @Override
            public int compare(Article o1, Article o2) {
            // 리턴값에 어떤것을 기준으로 정렬할 것인지 정해주어야 한다. 결과값이 양수이면 o1과 o2의 자리를 바꾸고 음수라면 바꾸지 않는다.
                return o2.id - o1.id;
            }
        });
        // 출력
        for(Article article : articles){
            System.out.println(article.id + " : " + article.title);
        }
    }
}

// 객체 생성
class Article {
    int id;
    String title;

    Article(int id, String title){
        this.id = id;
        this.title = title;
    }
}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.