ArrayList元素的排序 java 集合
阿新 • • 發佈:2018-06-21
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 voidsetName(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<>();//新建動態鏈表View Code//創建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()); } }
運行輸出如下結果:
高個子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 集合