Heim  >  Artikel  >  Java  >  Java implementiert Standard- und benutzerdefinierte Methoden für die Listensortierung

Java implementiert Standard- und benutzerdefinierte Methoden für die Listensortierung

怪我咯
怪我咯Original
2017-07-02 10:26:362137Durchsuche

In diesem Artikel werden hauptsächlich die Standard- und benutzerdefinierten Methoden von Java Collections.sort () zum Implementieren der Listensortierung vorgestellt. Freunde in Not können sich auf

1 Die von Java bereitgestellte Standard-Listensortiermethode beziehen 🎜>

Hauptcode:

List<String> list = new ArrayList();list.add("刘媛媛");
list.add("王硕");
list.add("李明");
list.add("刘迪");
list.add("刘布");
//升序
Collections.sort(list,Collator.getInstance(java.util.Locale.CHINA));//注意:是根据的汉字的拼音的字母排序的,而不是根据汉字一般的排序方法
for(int i=0;i<list.size();i++)
{
 System.out.print(list.get(i));
}
System.out.println("");
//降序
Collections.reverse(list);//不指定排序规则时,也是按照字母的来排序的
for(int i=0;i<list.size();i++)
{
  System.out.print(list.get(i));
}


Ausgabeergebnis:

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 ist, dass die Modellklasse Comparable implementiert

Schnittstelle , überschreiben Sie die Methode int CompareTo(Object o)

       Modellklasse:

public class StudentDTO implements 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();
  // note: enum-type&#39;s comparation depend on types&#39; list order of enum method
  // so, if compared property is enum-type ,then its comparationfollow ObjEnum.objType order
  return this.age.compareTo(otherAge);
}
}
   主方法:   
public static void main(String[] args)
{
  List<StudentDTO> 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); //按照age升序 22,23,
     Collections.reverse(studentList); //按照age降序 23,22 
}
Die zweite ist die Komparatorklasse, die die Komparatorschnittstelle implementiert , überschreiben Sie die int-Vergleichsmethode (Objekt o1, Objekt o2). Die Sortiermethode lautet wie folgt:

2. Zum Sortieren chinesischer Zeichen: Sie können versuchen, ICU4J zu verwenden, um bessere Ergebnisse zu erzielen, insbesondere wenn Der Nachname besteht aus einigen seltenen Zeichen. Verwenden Sie

public class StudentDTO implements 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;
  }
} 
   比较器类:
class MyCompartor implements 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<StudentDTO> 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);  //按照age升序 22,23,
  Collections.reverse(studentList,mc); //按照age降序 23,22 
}
com.ibm.icu.text.Collator ersetzt java.text.Collator und com.ibm.icu.util.ULocale ersetzt java.util.Locale

3. Für den Aufzählungstyp enum1.compareTo(enum2) werden die Werte gemäß der Reihenfolge verglichen, in der die Aufzählungstypwerte definiert sind. Die späteren Werte sind größer,

und nicht in der alphabetischen Reihenfolge der Werte .

Das obige ist der detaillierte Inhalt vonJava implementiert Standard- und benutzerdefinierte Methoden für die Listensortierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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