1. 程式人生 > >ArrayList元素的排序 java 集合

ArrayList元素的排序 java 集合

pla 分享圖片 collect AD ring view pub 技術 TE

1.新建項目,新建Man類,添加屬性

技術分享圖片

2.在代碼編輯區域右鍵,選中source,自動生成setter,getter方法,以及構造函數(類似操作,選中generate constructor using field...)

技術分享圖片

3.勾選相應的屬性,確認即可,很方便。

技術分享圖片

結果如下圖:

技術分享圖片

Man.java代碼如下:

 1 public class Man {
 2     
 3     private String name;
 4     public String getName() {
 5         return name;
 6     }
 7     public void
setName(String name) { 8 this.name = name; 9 } 10 public int getHeight() { 11 return height; 12 } 13 public void setHeight(int height) { 14 this.height = height; 15 } 16 private int height; 17 18 public Man(String name, int height) { 19 super
(); 20 this.name = name; 21 this.height = height; 22 } 23 24 25 26 }

新建Test.java

技術分享圖片

添加代碼:

技術分享圖片
import java.util.ArrayList;


public class Test {

    public static void main(String[] args) {
        
        ArrayList<Man> arr=new ArrayList<>();//新建動態鏈表
        
        
//創建4個對象 Man man_exam1=new Man("高個子",185); Man man_exam2=new Man("中個子",175); Man man_exam3=new Man("矮個子",165); Man man_exam4=new Man("高個子",195); //隨意添加到動態數組裏面 arr.add(man_exam1); arr.add(man_exam4); arr.add(man_exam3); //打印查看 for (Man man : arr) { System.out.println(man.getName()+man.getHeight()); } }
View Code

運行輸出如下結果:

高個子185
高個子195
矮個子165

可以看到是亂序的。現在對其排序:

新建類:Compare.java

技術分享圖片

代碼:

技術分享圖片
 1 import java.util.Comparator;
 2 
 3 public class Compare implements Comparator{
 4 
 5      public int compare(Object obj0, Object obj1) {
 6           Man s1=( Man)obj0;
 7           Man s2=( Man)obj1;
 8           
 9           if(s1.getHeight()<=s2.getHeight())
10                   return 1;
11                   
12           return -1; 
13      }
14      
15 }
View Code

在Test.java中加入如下代碼(對象已經存放在動態數組arr裏面,執行如下代碼後arr中已經是排好序的):

 Compare comparator=new Compare();
Collections.sort(arr, comparator);

  技術分享圖片

最終完整版Test.java代碼:

技術分享圖片
import java.util.ArrayList;
import java.util.Collections;


public class Test {

    public static void main(String[] args) {
        
        ArrayList<Man> arr=new ArrayList<>();//新建動態鏈表
        
        //創建4個對象
        Man man_exam1=new Man("高個子",185);
        Man man_exam2=new Man("中個子",175);
        Man man_exam3=new Man("矮個子",165);
        Man man_exam4=new Man("高個子",195);
        
        //隨意添加到動態數組裏面
        arr.add(man_exam1);
        arr.add(man_exam4);
        arr.add(man_exam3);
    
        //打印查看
        for (Man man : arr) {
            System.out.println(man.getName()+man.getHeight());
        }
        
       System.out.println("排序後");
       Compare comparator=new Compare();
       Collections.sort(arr, comparator);
        
       for (int i=0;i<arr.size();i++){
        Man user_temp=(Man)arr.get(i);
           System.out.println(user_temp.getName()+","+user_temp.getHeight()); 
       }
    
        
        
        
    }
}
View Code

項目結構:

技術分享圖片

ArrayList元素的排序 java 集合