package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
/**
* @author 이준성
*
*/
public class Test {
/**
* @param args
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
ArrayList list = new ArrayList();
Random rd = new Random();
for(int i=0 ; i<10 ; i++) {
list.add(new Integer(rd.nextInt()));
}
Collections.sort(list); // 이거 한줄이면 정열이 됩니다.
for (Object object : list) {
System.out.println(object);
}
}
}
파라메터를 List로 받아서 List 구현한놈은 다 소팅할수 있습니다. ArrayList 같은 녀석들요
근데, 기본적으로 이놈은 오름차순으로 정렬을 합니다. 그렇지만 다른방식으로 정렬할수 있는 기능도 있습니다.
아래는 초단간 소스 입니다.
/**
*
*/
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Random;
/**
* @author 이준성
*
*/
public class Test {
/**
* @param args
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
ArrayList list = new ArrayList();
Random rd = new Random();
for(int i=0 ; i<10 ; i++) {
list.add(new Integer(rd.nextInt()));
}
Collections.sort(list, new UserCompare());
for (Object object : list) {
System.out.println(object);
}
}
@SuppressWarnings("unchecked")
public static class UserCompare implements Comparator {
public int compare(Object o1, Object o2) {
int a = ((Integer)o1).intValue();
int b = ((Integer)o2).intValue();
if(a > b) {
return -1;
}else if(a<b) {
return 1;
}else {
return 0;
}
}
}
}
다른방식으로(개발자 임의로 정열)하기 위해서는 Comparator 인터페이스를 구현(UserCompare 클래스 만듬)하여, Collections.sort(list, new UserCompare()); 이렇게 호출하여 주면 됩니다. 인자가 하나 더 늘어났습니다.
아~ 물론 Comparator 를 구현할시에 compare 메소드를 꼭 구현해야 하고 , 정렬방식을 코딩하면 됩니다. 정렬할때 compare 이 메소드를 내부적으로 호출해서 정렬을 하거든요!!!
'Java' 카테고리의 다른 글
Apache Commons DBCP 환경설정 값 (0) | 2015.06.10 |
---|---|
성능좋은 file 입출력(파일 이동) (0) | 2009.12.02 |
이미지 썸네일 처리 (0) | 2009.11.25 |
불필요한 코딩을 줄이자!(IBM developerWorks) (0) | 2009.04.09 |