java Collection中的排序问题
单条件排序
list排序可以直接采用Collections的sort方法:
实体类:
/**
* 消息实体
*/
public class MessageEntity {
private String key; //key
private String time; //生成时间
private String content; //报文内容
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
排序方法1:(按创建时间顺序排列)
//根据时间对messageList进行排序
Collections.sort(messageList,comparator);
//排序方法
Comparator<MessageEntity> comparator = new Comparator<MessageEntity>(){
public int compare(MessageEntity m1, MessageEntity m2) {
//按创建时间排序
try {
int flag = m1.getTime().compareTo(m2.getTime());
return flag;
} catch (ParseException e) {
Log.error(MemcachedService.class,"comparator error", e);
}
return -1;
}
};
排序方法2:(按创建时间倒序)
//按创建时间倒序
Comparator<MessageEntity> comparator = new Comparator<MessageEntity>(){
public int compare(MessageEntity m1, MessageEntity m2) {
try {
Date date1 = sdfSave.parse(m1.getTime());
Date date2 = sdfSave.parse(m2.getTime());
if(date1.after(date2)){
return -1;
}else if(date1.equals(date2)){
return 0;
}else{
return 1;
}
} catch (ParseException e) {
Log.error(MemcachedService.class,"comparator error", e);
}
return -1;
}
};