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

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

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

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

下面是实现代码:

以下文件必须引入util包:

package com.test;

import java.util.*;

Emp.java文件如下:

Java代码   收藏代码
  1. class Emp{  
  2. private String empNo ;  
  3. private String empName ;  
  4. private float sal ;  
  5.   
  6. public String getEmpNo() {  
  7.    return empNo;  
  8. }  
  9. public void setEmpNo(String empNo) {  
  10.    this.empNo = empNo;  
  11. }  
  12. public String getEmpName() {  
  13.    return empName;  
  14. }  
  15. public void setEmpName(String empName) {  
  16.    this.empName = empName;  
  17. }  
  18. public float getSal() {  
  19.    return sal;  
  20. }  
  21. public void setSal(float sal) {  
  22.    this.sal = sal;  
  23. }  
  24.   
  25. public Emp(String empNo,String empName,float sal){  
  26.    this.empNo = empNo ;  
  27.    this.empName = empName ;  
  28.    this.sal = sal ;  
  29. }   
  30. }  

 

MyComparator文件如下:

Java代码   收藏代码
  1. class MyComparator implements Comparator{  
  2.   
  3.     public int compare(Object o1,Object o2) {  
  4.        Emp e1=(Emp)o1;  
  5.        Emp e2=(Emp)o2;   
  6.        if(e1.getSal()<e2.getSal())  
  7.         return 1;  
  8.        else  
  9.         return 0;  
  10.        }  
  11. }  

 

主函数Test.java文件如下:

Java代码   收藏代码
  1. public class Test {  
  2.   
  3. /** 
  4. * @param args 
  5. */  
  6. public static void main(String[] args) {  
  7.    // TODO Auto-generated method stub  
  8.    ArrayList al = new ArrayList() ;  
  9.    Emp emp1 = new Emp("sn001","ysj1",2500) ;  
  10.    Emp emp2 = new Emp("sn002","ysj2",1200) ;  
  11.    Emp emp3 = new Emp("sn003","ysj3",8900) ;  
  12.    Emp emp4 = new Emp("sn004","ysj4",3400) ;  
  13.    Emp emp5 = new Emp("sn005","ysj5",4500) ;  
  14.    al.add(emp1) ;  
  15.    al.add(emp2) ;  
  16.    al.add(emp3) ;  
  17.    al.add(emp4) ;  
  18.    al.add(emp5) ;  
  19.     
  20.    System.out.println("排序前的值");  
  21.    for(int i=0;i<al.size();i++){  
  22.     Emp emp = (Emp)al.get(i) ;  
  23.     System.out.println(emp.getSal());  
  24.    }   
  25.    //必须是Comparator中的compare方法和Collections.sort方法配合使用才管用  
  26.    MyComparator mc = new MyComparator() ;  
  27.    Collections.sort(al, mc) ;  
  28.     
  29.    System.out.println("排序后的值");  
  30.    for(int i=0;i<al.size();i++){  
  31.     Emp emp = (Emp)al.get(i) ;  
  32.     System.out.println(emp.getSal());  
  33.    }  
  34. }  
  35. }  
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值