Heim > Java > javaLernprogramm > Hauptteil

Java Collections.sort() implementiert die Standardmethode und die benutzerdefinierte Methode der Listensortierung

巴扎黑
Freigeben: 2017-06-26 11:13:51
Original
1835 Leute haben es durchsucht

1. Die von Java bereitgestellte Standard-Listensortiermethode

Hauptcode:

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

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

//Aufsteigende Reihenfolge
Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//Hinweis: Es basiert auf dem Pinyin der chinesischen Schriftzeichen Alphabetisch sortiert, statt nach der allgemeinen Sortiermethode chinesischer Schriftzeichen
for(int i=0;i {
System. out.print(list.get( i));
      }
      System.out.println("");

//Absteigende Reihenfolge
                }                                                                                    mit   mit   mit   mit   mit         mit using ‐ ‐ ‐ } ‐ }                                                      Alphabetisch sortiert
for(int i=0;i

Ergebnis ausgeben :

Li Ming Liu Bu Liu Di Liu Yuanyuan Wang Shuo

Wang Shuo Liu Yuanyuan Liu Di Liu Bu Li Ming


2. Benutzerdefinierte Sortierregeln:

Die erste besteht darin, dass die Modellklasse die Comparable-Schnittstelle implementiert und die int CompareTo(Object o)-Methode überschreibt

Modellklasse:

öffentliche Klasse StudentDTO implementiert Comparable

{

private String name;
private int age;

public String getName()

{

return name;
}

public void setName( String name)

{

this.name = name;
}

public ObjType getType()

{

return type;
}

public void setAge(int age)

{

this.age= age;
}

@ Override

public int CompareTo(Object o)

{

StudentDTO sdto = (StudentDTO)o;

int otherAge = sdto.getAge();

// Hinweis: Der Vergleich des Enum-Typs hängt von der Listenreihenfolge der Typen der Enum-Methode ab

/ / Wenn die verglichene Eigenschaft also vom Typ enum ist, folgt ihr Vergleich der Reihenfolge ObjEnum.objType > Hauptmethode:

public static void main(String[] args)

{

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

      Collections.sort(studentList); //In aufsteigender Reihenfolge des Alters 22, 23, Collections.reverse(studentList) ; //In absteigender Reihenfolge des Alters 23,22

}

Die zweite besteht darin, dass die Komparatorklasse die Comparator-Schnittstelle implementiert und die int-Vergleichsmethode (Objekt o1, Objekt o2) überschreibt. Modellklasse:

öffentlich Klasse StudentDTO implementiert Comparable

{

private String name;

private int age;

public String getName( )

{

return name;

}

public void setName (String -Name)
{🎜> this.name = name; >     }

     public void setAge(int age)

     {

         this.age= age;
     }

           比较器类::

Klasse MyCompartor implementiert Comparator
{

     @Override

     public int Compare(Object o1, Object o2)

    {

           StudentDTO sdto1= (StudentDTO )o1;


           StudentDTO sdto2= (StudentDTO )o2;

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

    }

}

           主方法:

public static void main(String[] args)

{

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

      Collections.sort(studentList,mc);     //Alter: 22, 23,

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

}

 

 

附注:

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

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

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

SIMPLIFIED_CHINESE

)));//升序;   

System.out.println(Arrays.toString(names));      

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


用com.ibm.icu.text. Collator替换java.text.Collator,用com.ibm.icu.util.ULocale替换java.util.Locale3. 对于枚举类型的enum1.compareTo(enum2)是照枚举类型值在定义时的先后顺序比较的,越后面的越大,

而不是按照值的字母先后顺序比较的。

 

Das obige ist der detaillierte Inhalt vonJava Collections.sort() implementiert die Standardmethode und die benutzerdefinierte Methode der Listensortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage