您的位置:首页 > 编程语言 > Java开发

对ArrayList中的元素按照某一列进行排序

2016-09-25 13:34 337 查看


对ArrayList中的元素按照某一列进行排序

博客分类: 

java 

对ArrayList中的元素进行排序,主要考查的是对util包中的Comparator接口和Collections类的使用。

实现Comparator接口必须实现compare方法,自己可以去看API帮助文档。

创建一个Comparator实例后,用Collections.sort(List,<E>)对List中的元素进行排序。

下面是实现代码:

以下文件必须引入util包:

package com.test;

import java.util.*;

Emp.java文件如下:

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 ;  

}   

}  

 

MyComparator文件如下:

Java代码  


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.java文件如下:

Java代码  


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());  

   }  

}  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java