ホームページ >Java >&#&チュートリアル >java Collections.sort() は、リストの並べ替えのデフォルト メソッドとカスタム メソッドを実装します。

java Collections.sort() は、リストの並べ替えのデフォルト メソッドとカスタム メソッドを実装します。

巴扎黑
巴扎黑オリジナル
2017-06-26 11:13:511875ブラウズ

1. java

メインコードによって提供されるデフォルトのリストソートメソッド:

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

list.add("Wang Shuo ") ;
list.add("李明");
list.add("劉迪");
list.add("劉布");

//昇順
Collections.sort(list,Collat​​or) .getInstance( java.util.locale.china); // 注: 漢字の一般的な並べ替え方法ではなく、漢字のピンインの発音文字によって並べ替えられます。 System.out.print(list .get(i)); の場合は、文字でもソートされます


Li Ming Liu Bu Liu Di Liu Yuanyuan Wang Shuo
Wang Shuo Liu Yuanyuan Li u Di Liu Bu Li Ming



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


1 つ目は、モデル クラスが Comparable インターフェイスを実装し、重い書き込みと int CompareTo(Object o) メソッドをオーバーライドすることです

モデル クラス:

public class StudentDTO は Comparable を実装します

{

private String name;

private int age;public String getName()

{

return name; } VPublic void setname (String name) {

this.Name = name

}

Public objtype () {
Return Type;
}}}}} tum)
{) this.age = age;

}


@Override
public int CompareTo(Object o)
: enum-type の比較は次のものに依存しますenum メソッドのタイプのリスト順序

// したがって、比較されるプロパティが enum-type の場合、その比較は ObjEnum.objType の順序に従います



return this.age.compareTo(otherAge);
}

}


Main メソッド:

public static void main(String[] args)

uan");


s .setAge(22);

studentList.add(s1);

StudentDTO s1 = new StudentDTO (); s.setAge(23) ;

studentsList.add (s2);

Collections.sort(studentList) // 22歳、23歳の昇順で

Collections.reverse(studentList); // 年齢が高い順に23、22

}


2 つ目は比較です。 Comparator クラスは Comparator インターフェイスを実装し、int Compare(Object o1, Object o2) メソッドをオーバーライドします。 public String getName( )
名前を返します。

public void setName(String name)
{
this.name = name;
}

public ObjType getType()
{
return type;
}

public void setAge(int age)
{
this.age= age;
}

}

比较器类:

class MyCompartor は 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)
{
リスト ; 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);    //按照年齢降順 23,22

}

附注:

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

String[] names = {"王林", "杨宝", "李「镇」、「刘迪」、「刘波」};  
Arrays.sort(names, com.ibm.icu.text.Collat​​or.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序;   
System.out.println(Arrays.toString(names));      

2. 汉字の順序: ICU4J を使用するとより良い結果が得られます、特に姓が特定の生字の場合、

com.ibm.icu.text.Collat​​or の代わりに java.text.Collat​​or、 com.ibm.icu.util.ULocale 代替java.util.Locale

3. 列の型の enum1.compareTo(enum2) は、列の型の指定時の先次順序比較、次の次の面を超えます。素晴らしい、

ではなく、写真の値の字母よりも前の順序です。

以上がjava Collections.sort() は、リストの並べ替えのデフォルト メソッドとカスタム メソッドを実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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