[Javaの] BigDataは、ツールの普遍的な基本_ソートを達成

簡単な紹介

一般的な選別ツールを実装し、ユーザによって選択されたオブジェクトの種類に応じてソートされ、例えば、年齢年齢の使用によってソート賃金又は同等の給与場合によって選別、仕分け

コードの実装

図のコードの構造:

 

 

パッケージcn.test.logan.day08。

輸入はjava.util.ArrayList; 

パブリック クラスSortUtilTest {
     公共 静的 ボイドメイン(文字列[]引数){ 
        ユーザU1 = 新しいユーザー( "001"、 "张三"、30,1000 )。
        ユーザU2 = 新しいユーザー( "002"、 "李四"、29,1200 ); 
        ユーザU3 = 新しいユーザー( "003"、 "王五"、27,1000 ); 
        ユーザーU4 = 新しいユーザー( "004"、 "狗蛋"、24,1400 ); 
        
        ArrayListの <ユーザ>リスト= 新しいのArrayList < 
        List.add(U2); 
        List.add(U3); 
        List.add(U4); 
        
        // 年齢のソート
         // SortUtil.sort(リスト、新しい新AgeCompare()); 
        
        // 注文有料
         // SortUtil.sort(リスト、新しい新SalaryCompare()); 
        
        //   賃金への最初のよると、給与は年齢に応じ等しい 
        SortUtil.sort(リスト、新しい新SalaryAgeCompare()); 
        
        
        
        のために(ユーザU:リスト){ 
            のSystem.out .println(U); 
        } 
    } 
}
SortUtilTest.java
パッケージcn.test.logan.day08。

輸入はjava.util.ArrayList; 

パブリック クラスSortUtil {
     公共の 静的な 無効ソート(のArrayList <ユーザー> ULIST、COMの比較){
         のためにint型は、 I = 0; I <uList.size() - 1; I ++ ){
             のためにint型 J = 0; jの<ULIST。サイズ() - 1-I; J ++ ){
                 // 判断大小
                ブール RES = com.compare(uList.get(J)、uList.get(J + 1 ))。
                もし(RES){ 
                    ユーザーTMP = uList.get(J)。
                    uList.set(J、uList.get(J1 )); 
                    uList.set(J 1 、TMP); 
                } 
            } 
        } 
    } 
}
SortUtil.java
パッケージcn.test.logan.day08。

パブリック インターフェース比較{
     パブリック ブール比較(ユーザU1、ユーザU2)。
}
Compare.java
パッケージ; cn.test.logan.day08
 / ** 
 * Userクラスを定義
 備える*:ID、名前、年齢、給与
 * @author QIN 
 * 
 * / 
パブリック クラスユーザー{ 


    プライベート文字列ID;
     プライベート文字列名;
     プライベート int型の年齢;
     プライベート Aフロート給与、
    
    パブリックユーザ(){ 
        
    } 
    
    パブリックユーザ(ID列、文字列名、INT年齢、フロート給料){
         この .ID = ID;
         この .nameの= 名;
         この .age =年齢;
        この .salary = 給与; 
    } 

    パブリック文字列のgetId(){
         戻りID。
    } 

    公共 ボイドSETID(文字列ID){
         この .ID = ID。
    } 

    パブリック文字列のgetName(){
         戻り名。
    } 

    公共 ボイドのsetName(文字列名){
         この .nameの= 名前。
    } 

    公共 INT getAge(){
         戻り年齢; 
    } 

    パブリック 無効 setAge(int型年齢){
         この .age = 年齢。
    } 

    公共 フロートgetSalary(){
         戻り給料。
    } 

    公共 ボイド setSalary(フロート給料){
         この .salary = 給与。
    } 
    
    // 定义のtoString方法
    @Override
     パブリック文字列のtoString(){
         戻り 、この + "" + .IDをこの .nameの+ "" + この .age + "" + この.salary。
    } 
    
    
}
User.java

以下の3つの年齢、ソート最初の賃金等の給与、年齢、後

パッケージcn.test.logan.day08。

パブリック クラス AgeCompareの実装を比較{ 

    @Override 
    パブリック ブールの比較(ユーザU1、ユーザU2){
         場合(u1.getAge()> u2.getAge()){
             返す 
        } 
        を返す 
    } 

}
AgeCompareの.java
パッケージcn.test.logan.day08。

パブリック クラス SalaryCompareの実装を比較{ 
    @Override 
    パブリック ブールの比較(ユーザU1、ユーザU2){
         場合(u1.getSalary()> u2.getSalary()){
             返す 
        } 
        を返す 
    } 

}
SalaryCompare.java

 

パッケージcn.test.logan.day08; 

パブリック クラスは SalaryAgeCompare 実装を比較{ 

    @Override 
    パブリック ブール(ユーザU1、ユーザU2)を比較は{
         //は、彼らは同じ年齢で注文している場合は、最初の賃金、給料に応じてソート
        IF(u1.getSalary()> u2.getSalary()){
             リターン trueに; 
        } 
        IF(u1.getSalary()== u2.getSalary()){
             IF(u1.getAge()> u2.getAge()){
                 リターン trueに; 
            } 
        } 
        戻り falseに
        
    } 

}
SalaryAgeCompare.java

 

おすすめ

転載: www.cnblogs.com/OliverQin/p/12099515.html