我有两种不同的方法从两个不同的数据库表中获取数据。我将使用ArrayList
类将这两个数据添加到同一bean
。
List<LeadVO> leadvoList = new ArrayList<LeadVO>(); // array list declaration
在while loop
中,我将使用bean
类加载所有数据。在此操作之前,我将触发两个表的查询。
while(true){
LeadVO statusVO = new LeadVO(); //initializing bean class
// code to load all value using setters
最后,我将把这个bean添加到array list
:
leadvoList.add(statusVO);
创建了单独的比较类
公共类ComparatorDAO实现了Comparator {
public int compare(LeadVO arg0, LeadVO arg1) {
return arg1.getCreatedtimeFormat().compareTo(arg0.getCreatedtimeFormat()) ;
}
}
Collections.sort(commentVOList,new ComparatorDAO()); //排序方法
理想情况下,这不会根据日期排序我相信这会将日期视为字符串
请帮助我
再次感谢
现在我需要按照列表中已存在的日期顺序对此列表进行排序。我指的是列表中的日期。
答案 0 :(得分:1)
如果您的LeadVO
包含您要排序的日期,请在您的VO中实施Comparable
界面,然后使用Collections.sort()
对VO集合进行排序。
public class LeadVO implements Comparable<LeadVO> {
private Date date;
// other properties, getters and setters
@Override
public int compareTo(LeadVO other) {
return date.compareTo(other.getDate());
}
}
和这样的那种:
Collections.sort(leadVoList);
如果您的日期不能保证为非null,理想情况下,您应该添加空检查或使用来自commons-lang的ObjectUtils.compare。
此外,您可以通过创建Comparator
而不是按照其他海报的建议实施Comparable
来实现此目标,如果您需要按多个值对VO进行排序,这可能会更好。如果您只需要按日期对其进行排序,这种方法可能会更简单一些。
答案 1 :(得分:0)
这是一个例子:希望你不要介意硬解释。
List<String> unsortList = new ArrayList<String>();
unsortList.add("CCC");
unsortList.add("111");
unsortList.add("AAA");
unsortList.add("BBB");
unsortList.add("ccc");
unsortList.add("bbb");
unsortList.add("aaa");
unsortList.add("333");
unsortList.add("222");
//before sort
System.out.println("ArrayList is unsort");
for(String temp: unsortList){
System.out.println(temp);
}
//sort the list
Collections.sort(unsortList);
//after sorted
System.out.println("ArrayList is sorted");
for(String temp: unsortList){
System.out.println(temp);
}
}
答案 2 :(得分:0)
您可以使用比较器对arrayList进行排序:
public Comparator<Record> RecordComparator = new Comparator<Record>() {
public int compare(Record record1, Record record2) {
return record1.getDate().compareTo(record2.getDate());
}
};
然后:
Collections.sort(list, new RecordComparator());
答案 3 :(得分:0)
你需要覆盖那个类compareTo方法,因为它是java查找排序的方法
只需覆盖您需要排序的字段
compareTo(Object other){Someclass.somefield.compareTo(other.smeField)}