어레이리스트를 정렬해보자
order by desc , asc 처럼 할수 있다.
예제를 살펴보자
String 만 비교할경우
List<String>car = new ArrayList<String>();
Collections.sort(car, new Comparator<String>(){
public int compare(String obj1, String obj2)
{
// TODO Auto-generated method stub
return obj1.compareToIgnoreCase(obj2);
}
});
ArrayList 안에 커스텀으로 String, Int ,String 을 넣어다고 하면 ..........
int형 기준으로 값을 정렬하고 싶을때는 간단하다
이런 오브젝트가 있다고 생각하고
class robot
{
public String name; //이름
public int no; //번호
public String age; //나이
}
List<robot> arrRobot = new ArrayList<robot>();
arrRobot.add( new robot("AAA",10,"50"));
arrRobot.add( new robot("FFF",5,"60"));
arrRobot.add( new robot("QQQ",15,"45"));
arrRobot.add( new robot("SSS",17,"35"));
arrRobot.add( new robot("BBB",12,"55"));
arrRobot.add( new robot("CCC",2,"10"));
arrRobot.add( new robot("GGG",6,"22"));
arrRobot.add( new robot("RRR",1,"33"));
arrRobot.add( new robot("CCC",6,"1"));
//ASC 오름차순
Collections.sort(arrRobot, new Comparator<robot>(){
public int compare(robot obj1, robot obj2)
{
// TODO Auto-generated method stub
return (obj1.no < obj2.no) ? -1: (obj1.no > obj2.no) ? 1:0 ;
}
});
//DESC 내림차순
Collections.sort(arrRobot, new Comparator<robot>(){
public int compare(robot obj1, robot obj2)
{
// TODO Auto-generated method stub
return (obj1.no > obj2.no) ? -1: (obj1.no > obj2.no) ? 1:0 ;
}
});
//이름순으로 정렬할경우
Collections.sort(arrRobot, new Comparator<robot>(){
public int compare(robot obj1, robot obj2)
{
// TODO Auto-generated method stub
return obj1.name.compareToIgnoreCase(obj2.name);
}
});
http://ggari.tistory.com/266
'언어 > JAVA' 카테고리의 다른 글
리플렉션 (0) | 2016.10.22 |
---|---|
[Java] 문자열(String) : 문자열비교하기 ( equals(), equalsIgnoreCase(), compareTo(), compareToIgnoreCase() .. ) (0) | 2016.10.21 |
자바에서 배열 정렬하기 (0) | 2016.10.21 |
[Java]Collections.sort로 정렬하기(숫자) (0) | 2016.10.21 |
Java Map - HashMap, TreeMap, LinkedHashMap 차이 (0) | 2016.10.17 |
댓글