pojo的排序问题疑问

来源:互联网 发布:python genetic 编辑:程序博客网 时间:2024/04/30 22:37

    做项目时遇到一个List<TapeGroup>排序问题,查了点资料都说要在实体类上实现comparable接口,原模原样的写了个,可是觉得不好,求大牛给点建议!!!求大牛给点建议!!!求大牛给点建议!!!

public class TapeGroup  implements Comparable<TapeGroup>{
private String id;
private String name ;
private String ctime ;
private String remark ;
private String total ;
private String ausize ;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCtime() {
return ctime;
}
public void setCtime(String ctime) {
this.ctime = ctime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public String getAusize() {
return ausize;
}
public void setAusize(String ausize) {
this.ausize = ausize;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "TapeGroup [id=" + id + ", name=" + name + ", ctime=" + ctime
+ ", remark=" + remark + ", total=" + total + ", ausize="
+ ausize + "]";
}
@Override
public int compareTo(TapeGroup o) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//小写的mm表示的是分钟  
String ctime2 = o.getCtime();
int compareTo = 0;
try {
Date parse2 = sdf.parse(ctime2);
Date parse = sdf.parse(ctime);
compareTo = parse.compareTo(parse2);
} catch (ParseException e) {
e.printStackTrace();
}
return compareTo;


}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

public class TestCompareBlog1 {
public static void main(String[] args) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//小写的mm表示的是分钟  
List<TapeGroup> queryTapeGroup = new ArrayList<TapeGroup>();
TapeGroup tapeGroup1 = new TapeGroup();
tapeGroup1.setId("1");
tapeGroup1.setAusize("12mb");
tapeGroup1.setName("tapeGroup1");
tapeGroup1.setRemark("tapeGroup1");
tapeGroup1.setTotal("2T");
tapeGroup1.setCtime("2016-08-23 18:39:51.73");
TapeGroup tapeGroup2 = new TapeGroup();
tapeGroup2.setId("2");
tapeGroup2.setAusize("12mb");
tapeGroup2.setName("tapeGroup2");
tapeGroup2.setRemark("tapeGroup2");
tapeGroup2.setTotal("2T");
tapeGroup2.setCtime("2016-08-23 18:39:38.788");
TapeGroup tapeGroup3 = new TapeGroup();
tapeGroup3.setId("2");
tapeGroup3.setAusize("12mb");
tapeGroup3.setName("tapeGroup3");
tapeGroup3.setRemark("tapeGroup3");
tapeGroup3.setTotal("2T");
tapeGroup3.setCtime("2016-08-23 18:39:46.096");
queryTapeGroup.add(tapeGroup1);
queryTapeGroup.add(tapeGroup2);
queryTapeGroup.add(tapeGroup3);

Collections.sort(queryTapeGroup);
System.out.println(queryTapeGroup);
}
}

很明显这么比较的话需要在pojo中tay catch ,这有点不符合逻辑,自己想了个替代方法可是也觉得太low了

List<TapeGroup> sortGroup = new ArrayList<TapeGroup>();sortGroup.addAll(queryTapeGroup);for(TapeGroup tapeGroup :queryTapeGroup){String ctime = tapeGroup.getCtime();Date date = sdf.parse(ctime);int count = 0;for(TapeGroup tapeGroupA :queryTapeGroup){String ctimeA = tapeGroupA.getCtime();Date dateA = sdf.parse(ctimeA);int compareTo = date.compareTo(dateA);if(compareTo < 0){count ++;}}sortGroup.set(count, tapeGroup);
}
System.out.println(sortGroup);
<pre name="code" class="java"><strong><span style="font-size:18px;">大牛给点建议啊!!!</span></strong>

0 0
原创粉丝点击