자바 JAVA ArrayList Sorting  + 자바 JAVA ArrayList Sorting 정렬


어레이리스트를 정렬해보자


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; //나이

}


ArrayList 부분

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);

      }

});







끝~

Posted by 김까리 까리성

댓글을 달아 주세요

  1. 2016.01.07 10:56

    감사합니다. 다른데는 너무 복잡하게 해놨더라구요 이렇게 간단한것을

  2. 2019.04.17 14:57

    간단요약 보기 편해요. 감사합니다.