http://www.cnblogs.com/cvst/articles/5818365.html
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());
}
}
}