Collections.sort()ソートコードケース

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 = 'ココ'}

 

 

公開された45元の記事 ウォンの賞賛8 ビュー5828

おすすめ

転載: blog.csdn.net/wenyunick/article/details/104345570