项目中遇到排序问题,数据确实在后台拼凑的。所有不能用sql进行排序。于是实现Comparable接口
如以下类:
//实现 Comparable 接口
public class AttendeeView implements Comparable<AttendeeView> {
private String id;
private String gdName;
private String userName;
private String picSrc;
private String praiseNum;
private long num;
public AttendeeView() {
super();
}
public AttendeeView(String id, String gdName, String userName,
String picSrc, String praiseNum, long num) {
super();
this.id = id;
this.gdName = gdName;
this.userName = userName;
this.picSrc = picSrc;
this.praiseNum = praiseNum;
this.num = num;
}
public String getGdName() {
return gdName;
}
public void setGdName(String gdName) {
this.gdName = gdName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPicSrc() {
return picSrc;
}
public void setPicSrc(String picSrc) {
this.picSrc = picSrc;
}
public String getPraiseNum() {
return praiseNum;
}
public void setPraiseNum(String praiseNum) {
this.praiseNum = praiseNum;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public long getNum() {
return num;
}
public void setNum(long num) {
this.num = num;
}
//实现自己的排序逻辑
@Override
public int compareTo(AttendeeView o) {
if (this == o) {
return 0;
} else if (o != null && o instanceof AttendeeView) {
AttendeeView av = (AttendeeView) o;
if (num <= av.num) {
return 1;
} else {
return -1;
}
} else {
return 1;
}
}
}
然后在需要返回前台数据的类中重写如下方法:
private static final Comparator<AttendeeView> COMPARATOR = new Comparator<AttendeeView>() {
public int compare(AttendeeView o1, AttendeeView o2) {
return o1.compareTo(o2);//运用AttendeeView类的compareTo方法比较两个对象
}
};
对需要排序的的数据执行如下方法:
List<AttendeeView> list = new ArrayList<AttendeeView>();
list.add();//需要添加的数据
.....
Collections.sort(list, COMPARATOR);