>  기사  >  Java  >  java Collections.sort()는 목록 정렬의 기본 방법과 사용자 정의 방법을 구현합니다.

java Collections.sort()는 목록 정렬의 기본 방법과 사용자 정의 방법을 구현합니다.

巴扎黑
巴扎黑원래의
2017-06-26 11:13:511840검색

1.java

에서 제공하는 기본 목록 정렬 방법:

List list = new ArrayList();list.add("Liu Yuanyuan");

list.add("Wang Shuo ") ;
list.add("Li Ming");
list.add("Liu Di");
list.add("Liu Bu");

//오름차순
Collections.sort(list,Collator .getInstance( Java.util.locale.china); // 참고: 한자 정렬 방식이 아닌 한어병음의 표음 문자를 기준으로 정렬됩니다.
for (int i = 0; i & lt ; list.size (); i ++ )
                                              그때,
for (int i = 0; I & lt; list.size (); i + +) {
System.Print (list.get (i))







: Liu Bu Liu Di Liu Yuanyuan Wang Shuo

Wang Shuo Liu Yuanyuan Liu Di Liu Bu Li Ming

2. 사용자 정의 정렬 규칙:



첫 번째는 모델 클래스가 Comparable 인터페이스를 구현하고 무거운 쓰기 및 int CompareTo(Object o) 메서드를 재정의한다는 것입니다

모델 클래스:

public 클래스 StudentDTO는 Comparable
{

private String name;

private int age;

public String getName()
{

return name;

} VPublic void setname(문자열 이름)
{
this을 구현합니다. 이름 = 이름;
}

Public objtype () {
반환 유형;
}}}}} tum)
{) this.age = age;

}


@Override
public int CompareTo(Object o)

enum-type의 비교는 유형의 Enum MetHod 목록 순서에 따라 달라집니다.

// SO, 비교 속성이 Enum-Type이면 compayfolow objenum.objtype 순서


Reter

Herage);}}}}

Main 방법:

public static void main(String[] args)

                                                                                >

에스 .SetName ("lily");

                Collections.sort(studentList); //22세, 23세 순,

                Collections.reverse(studentList);   //23세 순 22

}

두 번째는 비교입니다. Comparator 클래스는 Comparator 인터페이스를 구현하고 int Compare(Object o1, Object o2) 메서드를 재정의합니다. public String getName( )

                                                                                                                               이름을 반환합니다.ㅋㅋㅋ   public void setAge(int age)

     {
         this.age= age;
     }


           比较器类:

class MyCompartor는 Comparator를 구현합니다

{

     @Override
     public int 비교(객체 o1, 객체 o2)
    {

           StudentDTO sdto1= (StudentDTO )o1;

           StudentDTO sdto2= (StudentDTO )o2;

           return sdto1.getAge.compareTo(stdo2.getAge())


    }
}

           주법:

public static void main(String[] arg s)

{

      목록 ; StudentList = new ArrayList();

      StudentDTO s1 = new StudentDTO ();

      s.setName("yuanyuan");

      s.setAge(22);

      StudentList.add(s1);


     StudentDTO s1 = new StudentDTO ();

      s.setName("lily");

      s.setAge(23);

      StudentList.add(s2);

      MyComparetor mc = new MyComparetor();

     컬렉션.정렬 (학생목록,MC);     //사진 촬영 22,23,

      Collections.reverse(studentList,mc);    //按Photoage降序 23,22   

}

 

 

附注:

1.对于数组的排序方法如下:

String[] names = {"王林",  "杨宝", "이镇", "刘迪", "刘波"};  

Arrays.sort(이름, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.

SIMPLIFIED_CHINESE

));//升序;   

System.out.println(Arrays.toString(이름));      

2.对于汉字字排序:可以尝试使用ICU4J会得到更好的结果,特别是姓为某些生僻字字时候,

용 com.ibm.icu .text.Collator替换java.text.Collator, com.ibm.icu.util.ULocale替换java.util.Locale

3.对于枚举类型的enum1.compareTo(enum2)是按Photo枚举类型值에서정해진 先后顺序比较的,越后면적 자동차大,


而不是按光值的字母先后顺序比较的.

 

위 내용은 java Collections.sort()는 목록 정렬의 기본 방법과 사용자 정의 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.