정말 간단한건데....
잘 쓰질 않으니...몰랐던것...
특정 타입의 클래스(자료구조용) 오브젝트를 arraylist에 넣고,
정렬할때.
1. 우선, 자료구조용 클래스 정의할때. 비교 가능하도록 하도록
implements Comparable<ClassName>
삽입하여 클래스 선언
2. 비교 함수를 오버라이딩 하여 구현
public int compareTo(ClassName objName)
구현 클래스내 멤버 변수와, 파라미터 클래스내 멤버 변수의 차이값을 반환하되
오름/내림 차순을 고려하여, 적절히 음/양으로 반환
3. 다음과 같은 구문으로 정렬. 끝
Collections.sort(arraylist)
매우 간단..ㅡㅡ;;..
이럴때 가끔 보면..나 별로 코딩 잘 안한듯..ㅡㅡ;.
http://beginnersbook.com/2013/12/java-arraylist-of-object-sort-example-comparable-and-comparator/
Sorting of ArrayList<Object> with Comparable
Let’s say we need to sort the ArrayList<Student> based on the student Age property. This is how it can be done – First implement Comparable
interface and then Override the compareTo
method.
package beginnersbook.com; public class Student implements Comparable { private String studentname; private int rollno; private int studentage; public Student(int rollno, String studentname, int studentage) { this.rollno = rollno; this.studentname = studentname; this.studentage = studentage; } ... //getter and setter methods same as the above example ... @Override public int compareTo(Student comparestu) { int compareage=((Student)comparestu).getStudentage(); /* For Ascending order*/ return this.studentage-compareage; /* For Descending order do like this */ //return compareage-this.studentage; } @Override public String toString() { return "[ rollno=" + rollno + ", name=" + studentname + ", age=" + studentage + "]"; } }
Now we can very well call Collections.sort on ArrayList
import java.util.*; public class ArrayListSorting { public static void main(String args[]){ ArrayList<Student> arraylist = new ArrayList<Student>(); arraylist.add(new Student(223, "Chaitanya", 26)); arraylist.add(new Student(245, "Rahul", 24)); arraylist.add(new Student(209, "Ajeet", 32)); Collections.sort(arraylist); for(Student str: arraylist){ System.out.println(str); } } }
Output:
[ rollno=245, name=Rahul, age=24] [ rollno=223, name=Chaitanya, age=26] [ rollno=209, name=Ajeet, age=32]
'개발 및 연구 정보' 카테고리의 다른 글
java 날짜 관련 정보 (예. 주/월 등) 구하기 예제 (0) | 2016.09.23 |
---|---|
R Studio의 서버 설정 (0) | 2016.08.31 |
IntelliJ 에서 SVN 프로젝트 설정 (0) | 2014.04.18 |
인지과학의 역할 (0) | 2013.02.05 |
Pearson Correlation in Map/Reduce (0) | 2012.10.24 |