免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1284 | 回复: 0
打印 上一主题 下一主题

List排序的使用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-18 18:14 |只看该作者 |倒序浏览
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

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/37105/showart_1867563.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP