- 论坛徽章:
- 0
|
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 |
|