개요
- 일반 문자, 숫자를 저장한 리스트를 정렬할때와는 달리 객체를 오름/내림차순으로 정렬할때는 어떤 것을 기준으로 정렬할지 정해주어야 한다.
- 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;
}
}