ArrayList中的数据排序问题

我们在做项目时,常常遇到数组排序的问题.比如我有一个工作流的任务实例TaskInstance类,在获得某人任务实例列表时,把实例对象存储在ArrayList数组中,现在要把ArrayList数组中的TaskInstance对象按照任务创建时间进行排序。

TaskInstance.java 类内容如下
public class TaskInstance{
private static final long serialVersionUID = 1L;
long id = 0; //任务ID
int version = 0; //版本号
protected String name = null; //任务名
protected String actorId = null;//任务执行者
protected Date create = null;//任务创建时间
protected Date end = null;//任务完成时间
........略去

public TaskInstance() {
}
public void setCreate(Date create) {
this.create = create;
}
public void setId(long id) {
this.id = id;
}
public long getId() {
return id;
}
public Date getCreate() {
return create;
}
........略去
}

JBPMAction.java控制类
public class JBPMAction{

/**
* 返回任务列表
* @throws Exception
* @return String
*/
public String taskList() throws Exception {
.......

List taskList = new ArrayList();
//得到任务列表方法
taskList = taskMgmtSession.findTaskInstanceWrappersByActorIds(userMbIDs);
//指定 Comparator的实现类
Comparator comp = new TaskInstanceComparator();
//将taskList列表对象按TaskInstanceComparator中定义的规则排序
Collections.sort(taskList,comp);

return SUCCESS;

//实现Comparator接口的类,可是内部类,也可以是外部类,用于定义排序规则,对列表中的对象可以定义任何排序规则.

class TaskInstanceComparator
implements Comparator {
public int compare(Object o1, Object o2) {
TaskInstance tin1=(TaskInstance)o1;
TaskInstance tin2=(TaskInstance)o2;

//以下是以TaskInstance 中的create属性排序。

if (tin1.getCreate().getTime() > tin2.getCreate().getTime())
return 1;
else
return 0;
}

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值