对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