ホームページ  >  記事  >  Java  >  Collections.sort() が Java でリストの並べ替えメソッドを実装する方法のサンプル コード

Collections.sort() が Java でリストの並べ替えメソッドを実装する方法のサンプル コード

黄舟
黄舟オリジナル
2017-06-18 10:10:101917ブラウズ

この記事では主に、リストの並べ替えを実装するための Java Collections.sort() のデフォルト メソッドとカスタム メソッドを紹介します。必要な場合は、

1.java

メイン コード:


によって提供されるデフォルトのリスト 並べ替えメソッドを参照してください。

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

出力結果:

Li Ming Liu Bu Liu Di Liu Yuanyuan Wang Shuo

Wang Shuo Liu Yuanyuan Liu Di Liu Bu Li Ming

2. カスタマイズされた並べ替えルール:

1 つ目はモデル クラスの実装 Comparable インターフェース、 int CompareTo(Object o) メソッドをオーバーライドします

モデルクラス:


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 
}

2 つ目は、Comparator インターフェースを実装するコンパレーター クラスで、 int Compare(Object o1, Object o2 ) メソッドをオーバーライドします。結果は、特に姓がまれな文字である場合、

java.text.Collat​​or を com.ibm.icu.text.Collat​​or に、java.util.Locale を com.ibm.icu.util.ULocale に置き換えます。

3. 列挙型の場合、enum1.compareTo (enum2) は、値のアルファベット順ではなく、列挙型の値が定義されている順序に従って比較され、後の方が大きくなります

以上がCollections.sort() が Java でリストの並べ替えメソッドを実装する方法のサンプル コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。