Chinaunix首页 | 论坛 | 博客
  • 博客访问: 797641
  • 博文数量: 82
  • 博客积分: 9970
  • 博客等级: 中将
  • 技术积分: 2412
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-25 14:43
文章分类

全部博文(82)

文章存档

2013年(3)

2011年(8)

2010年(9)

2009年(25)

2008年(37)

我的朋友

分类: Java

2009-03-18 18:14:51

1: list中包含的对象(TaskVO),实现接口Comparator
 
import java.io.Serializable;
import java.util.Comparator;
import com.comtop.product.scheme.planitem.PlanItemConstants;
import com.comtop.product.scheme.planitem.util.PlanItemUtil;
 
public class TaskVO implements Serializable,Comparator {
    /** 地点名称 */
    private String placeName;
    /** 工作内容 */
    private String workContent;
    /** 电压等级 */
    private int voltageLevel;
 
    public String getPlaceName() {
        return placeName;
    }
    public void setPlaceName(String placeName) {
        this.placeName = placeName;
    }
    public int getVoltageLevel() {
        return voltageLevel;
    }
    public void setVoltageLevel(int voltageLevel) {
        this.voltageLevel = voltageLevel;
    }
    public String getWorkContent() {
        return workContent;
    }
    public void setWorkContent(String workContent) {
        this.workContent = workContent;
    }
    
    // 实现排序接口需要的方法(单个属性排序)
    public int compare(Object arg0, Object arg1) {
       TaskVO taskVO1 = (TaskVO)arg0;
       TaskVO taskVO2 = (TaskVO)arg1;
       // 如果需要升序排列
        return String.valueOf(taskVO1.getVoltageLevel()).compareTo(String.valueOf(taskVO2.getVoltageLevel()));
       // 如果需要降序排列
        return String.valueOf(taskVO2.getVoltageLevel()).compareTo(String.valueOf(taskVO1.getVoltageLevel()));
   }
 
// 如果需要实现多个属性排序则需要将上面的方法改成如下
public int compare(Object arg0, Object arg1) {
       TaskVO taskVO1 = (TaskVO)arg0;
       TaskVO taskVO2 = (TaskVO)arg1;
        int flag = String.valueOf(taskVO1.getVoltageLevel()).compareTo(String.valueOf(taskVO2.getVoltageLevel()));
       if(flag == 0){
           return taskVO1.getPlaceName().compareTo(taskVO2.getPlaceName());
       }else{
           return flag;
       }
   }
}
2:在需要排序的地方进行调用以下实现即可(假设tasks是一个list对象,里面包含若干个taskVO)
   TaskVO taskVO = new TaskVO();
   Collections.sort(tasks,taskVO);
后面得到的tasks就是排序过的list
阅读(884) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~