序文
java.utilパッケージのリストインターフェイスは、コレクションインターフェイスを継承し、オブジェクトコレクションの保存に使用されます。したがって、これらのオブジェクトをソートするとき、オブジェクトクラスは同じオブジェクト自体を比較するか、比較とソートを実行するためにコンパレータを使用できます。
名前と年齢の属性を含む学生エンティティクラスは、比較時に名前で昇順でソートされ、名前が同じ場合、年齢の昇順でソートされます。
最初のタイプ:それ自体によるエンティティクラスの比較
(比較可能なインターフェイスを実装します: public interface Comparable<T> 、メソッド宣言があります: public int compareTo(T o); )
サンプルコード:
パブリッククラスの学生は、比較可能な<Student> {private string name;プライベートインクエイジ; public Student(){super(); // TODO自動生成コンストラクタースタブ} Public Student(String name、int age){super(); this.name = name; this.age = age; } public string getname(){return name; } public void setName(string name){this.name = name; } public int getage(){return age; } public void Setage(int age){this.age = age; } @Override public int compareto(desute o){// todo auto-fienated method stub int flag = this.name.compareto(o.name); if(flag == 0){flag = this.age -o.age; } flagを返します。 }}次に、java.util.collectionsツールクラスのsort(Comparator<? super E> c)メソッドまたはjava.util.Collectionsツールクラスのsort(List<T> list)を使用します(実際には、1つの文があります: list.sort(null); )
list <Student> desustor = new ArrayList <Student>(); desustor.add(new Student( "a"、10));学生.Add(新しい学生( "B"、12));学生(新入生( "B"、11));学生.Add(新しい学生( "AC"、20)); sustent.sort(null); //collections.sort(students);
結果:
A 10 AC 20 B 11 B 12
2番目のタイプ:コンパレータの助けを借りて並べ替えます。
サンプルコード:
パブリッククラスの学生{プライベート文字列名;プライベートインクエイジ; public Student(){super(); // TODO自動生成コンストラクタースタブ} Public Student(String name、int age){super(); this.name = name; this.age = age; } public string getname(){return name; } public void setName(string name){this.name = name; } public int getage(){return age; } public void Setage(int age){this.age = age; }} Comparator java.util.Comparatorクラスは、インターフェイス( public interface Comparator<T> )で、 int compare(T o1, T o2);およびその他の方法:
私たちのコンパレータは、このインターフェイスを実装し、 compare方法を実装したいと考えています。
Private Class StudentComparatorはComparator <Student> {@Override Public Int Compare(Student O1、Student O2){// todo auto-fenated method stub int flag = o1.getname()。比較(o2.getname()); if(flag == 0){flag = o1.getage() - o2.getage(); } flagを返します。 }}比較する場合、 sort(Comparator<? super E> c) java.util.Collectionsのsort(List<T> list, Comparator<? super T> c)メソッドを使用できます。
list <Student> desustor = new ArrayList <Student>(); desustor.add(new Student( "a"、10));学生.Add(新しい学生( "B"、12));学生(新入生( "B"、11));学生.Add(新しい学生( "AC"、20)); test t = new test(); Students.Sort(T.New StudentComparator()); //collections.sort(Students、T.New StudentComparator()); for(学生学生:学生){System.out.println(desutent.getName()+""+sustent.getage()); }結果は最初の方法と同じです。
A 10 AC 20 B 11 B 12
要約します
上記は、Javaの並べ替えリストです。この記事の内容が、すべての人の勉強や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。