1: list中包含的对象(TaskVO),实现接口Comparator
import java.io.Serializable;
import java.util.Comparator;
import java.util.Comparator;
import com.comtop.product.scheme.planitem.PlanItemConstants;
import com.comtop.product.scheme.planitem.util.PlanItemUtil;
import com.comtop.product.scheme.planitem.util.PlanItemUtil;
public class TaskVO implements Serializable,Comparator {
/** 地点名称 */
private String placeName;
private String placeName;
/** 工作内容 */
private String workContent;
private String workContent;
/** 电压等级 */
private int voltageLevel;
private int voltageLevel;
public String getPlaceName() {
return placeName;
}
return placeName;
}
public void setPlaceName(String placeName) {
this.placeName = placeName;
}
this.placeName = placeName;
}
public int getVoltageLevel() {
return voltageLevel;
}
return voltageLevel;
}
public void setVoltageLevel(int voltageLevel) {
this.voltageLevel = voltageLevel;
}
this.voltageLevel = voltageLevel;
}
public String getWorkContent() {
return workContent;
}
return workContent;
}
public void setWorkContent(String workContent) {
this.workContent = 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()));
}
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;
}
}
}
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
相关热门文章
- 不锈钢暗装式垃圾桶 20130827...
- float和double精度及其区别...
- 靓机体验HP4395A Agilent4395A...
- 美澳领导人讨论叙利亚化武问题...
- haproxy capture request head...
给主人留下些什么吧!~~
评论热议