對ArrayList中對象元素進行排序


rrayList中的元素進行排序,主要考查的是對util包中的Comparator接口和Collections類的使用。
實現Comparator接口必須實現compare方法,自己可以去看API幫助文檔。

創建一個Comparator實例后,用Collections.sort(List,<E>)對List中的元素進行排序。

下面是實現代碼:

以下文件必須引入util包:

package com.test;

import Java.util.*;

Emp.java文件如下:

class Emp{
private String empNo ;
private String empName ;
private float sal ;

public String getEmpNo() {
return empNo;
}
public void setEmpNo(String empNo) {
this.empNo = empNo;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public float getSal() {
return sal;
}
public void setSal(float sal) {
this.sal = sal;
}

public Emp(String empNo,String empName,float sal){
this.empNo = empNo ;
this.empName = empName ;
this.sal = sal ;
}
}
自己實現的Comparator接口

class MyComparator implements Comparator{

public int compare(Object o1,Object o2) {
Emp e1=(Emp)o1;
Emp e2=(Emp)o2;
if(e1.getSal()<e2.getSal())
return 1;
else
return 0;
}
}
主類Test

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList al = new ArrayList() ;
Emp emp1 = new Emp("sn001","ysj1",2500) ;
Emp emp2 = new Emp("sn002","ysj2",1200) ;
Emp emp3 = new Emp("sn003","ysj3",8900) ;
Emp emp4 = new Emp("sn004","ysj4",3400) ;
Emp emp5 = new Emp("sn005","ysj5",4500) ;
al.add(emp1) ;
al.add(emp2) ;
al.add(emp3) ;
al.add(emp4) ;
al.add(emp5) ;

System.out.println("排序前的值");
for(int i=0;i<al.size();i++){
Emp emp = (Emp)al.get(i) ;
System.out.println(emp.getSal());
}
//必須是Comparator中的compare方法和Collections.sort方法配合使用才管用
MyComparator mc = new MyComparator() ;
Collections.sort(al, mc) ;

System.out.println("排序后的值");
for(int i=0;i<al.size();i++){
Emp emp = (Emp)al.get(i) ;
System.out.println(emp.getSal());
}
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM