Java Collection Frameworkで定義されている実装には、Vector、ArrayList、LinkedListが含まれます。これらのコレクションは、オブジェクトグループへのインデックスアクセスを提供します。それらは、要素を追加および削除するためのサポートを提供します。ただし、組み込みの要素ソートサポートはありません。
java.util.collectionsクラスのsort()メソッドを使用して、リスト要素を並べ替えることができます。リストオブジェクトをメソッドに渡すか、リストとコンパレータを渡すことができます。リスト内のすべての要素が同じタイプのクラスであり、このクラスが同等のインターフェイスを実装している場合、Collections.sort()を呼び出すだけです。このクラスがコンパレータを実装していない場合は、コンパレータをメソッドソート()に渡してソートすることもできます。デフォルトの分類順序を使用して並べ替えたくない場合は、ComparatorをMethod Sort()に渡してソートすることもできます。
1.比較可能なオブジェクトは、同等のインターフェイスを実装します
Public Classは、Private Int Age; {this.id = id} public age(int age){this.age = age} {this.name = name} public static void(string args []){list <sudute> list = new arraylist <sustent>; . add(new Student(i)); } Collections.sort(list); for(Student s: list){ System.out.println(s.getId()); } } public int compareTo(Object o) { if (学生のinstance){student)o;
2.Collections.sort(オブジェクトO、コンパレータC)を使用する
パブリッククラスJiamenucomparator Comparator {public int Compare(Object O1、Object O2){null!= o1 && null!= o2) )<mene2.getid()){return 1;
3.リスト要素の複数の属性を並べ替えます(Commons-Beanutilsを使用)
Commons-Beanutilsクラスライブラリには、Javabeansのソートに使用できるBeanComparatorクラスがあります。ただし、このクラスは一度に1つの属性のみを並べ替えることができます。 BeanComparatorを使用してJavabeansの複数の特性をソートする例を以下に示します。これは非常に簡単です。
Import org.apache.commons.beanutils.beancomparator; Import java.util.collection; Import java.util.comparator; Import java.util.list* 「未チェック」})パブリッククラスリストソーター{ /***リスト要素の複数の属性がソートされています。たとえば、listsorter.sort(list、 "name"、 "age")、最初に *名前属性でソートし、同じ名前の要素は年齢属性によってソートされます。 * * @paramリストには、ソートされる要素のリストが含まれています * @paramプロパティプロパティソートするプロパティ。以前の値は優先度が高くなっています。 */ public static <v> void sort(list <v> list、final string ... properties){collections.sort(list、new Comparator <v>(){public int compare(v o1、v o2){if if (o1 == null && o2 == return 0;プロパティ)= c.compare(o2);