1、ケース:
Personオブジェクト(名前、ID、年齢)
要件に応じて小から大への年齢、等しい年齢に記載の辞書名逆順をデ
2、ケースのデザイン:
1)人がオブジェクトを格納するためのArrayListを使用して、
2)ソートするCollections.sort()を使用
3)出力
3、コードシェア:
CollectionDemoをパッケージ化。 輸入はjava.util.ArrayList; 輸入java.util.Collections。 輸入はjava.util.List; 輸入はjava.util.Comparator; クラス人{ プライベートint型のID。 プライベートint型の年齢; プライベート文字列名; 公共人(int型のID、INT年齢、文字列名){ this.id = ID。 this.ageは年齢を=。 this.nameは名称。 } 公共ボイドSETID(int型のID){ this.id = ID。 } 公共ボイドsetAge(int型の年齢){ this.age =年齢。 } 公共ボイドのsetName(文字列名){ this.name =名。 } 公共INTのgetId(){ 戻りID。 } 公共INT getAge(){ 戻り年齢; } パブリック文字列のgetName(){ 戻り名。 } @Override パブリック文字列のtoString(){ 戻り"人物{" + "ID =" + ID + "年齢=" +年齢+ "NAME = '" +名+ '\'' + '}'。 } } publicクラスCollectionDemo2 { パブリック静的無効メイン(文字列[] args){ リストの<person>のArrayList =新規のArrayList <>(); arrayList.add(新しい人(001,20、 arrayList.add(新しい人(002,20、 arrayList.add(新しい新しい人(003,30、 "李")); arrayList.add(新しい新しい人(004,40、 "ココ")); arrayList.add(新しい新しい人(005,40) "結婚") ; Collections.sort(ArrayListを、新しい新しいコンパレータ<人>(){ 公共のintは比較(人O1、O2人){ IF(o1.getAge()= o2.getAge()){! リターンo1.getAge() - O2 .getAge();患者の年齢に応じて//昇順 }他{ 戻りo2.getName()compareToIgnoreCase(o1.getName());. //ソート降順辞書式順序名 } } }); //出力 (人物Pのための:ArrayListの){ System.out.println(P)。 } } }
出力:
人{ID = 2、年齢= 20、NAME = '張'}
人{ID = 1、年齢= 20、NAME = '陽'}
人{ID = 3、年齢= 30、NAME = 'リー'}
人{ ID = 5、年齢= 40、NAME = '結婚'}
人{ID = 4、年齢= 40、NAME = 'ココ'}