在后台用sql语句一条一条的查询出来 拼在一起 放入集合中 请问如何根据字段日期排序 啊。。。。。。。 肿么办啊??????
集合用arraylist
SQL里用order by 日期字段 asc /desc
如果不是一次性取出的数据,那就用Collections.sort()对list排序。
Collect.sort使用参考 http://www.blogjava.net/zygcs/archive/2008/01/17/176032.html
可以使用Collections的sort(List list, Comparator<? super T> c)方法进行比较排序。
写一个Comparator来定义排序的方式。
public class Test {
public static void main(String args[]) {
List list = new ArrayList();
list.add("2010-01-29 14:25");
list.add("2010-01-30 08:15");
list.add("2010-01-30 08:15");
list.add("2010-01-29 09:00");
list.add("2010-01-30 16:45");
list.add("2010-01-29 09:00");
list.add("2010-01-30 11:50");
list.add("2010-01-30 11:51");
list.add("2010-01-30 11:50");
Collections.sort(list, new Comparator() {
public int compare(Object o, Object o1) {
String str1 = o.toString();
String str2 = o1.toString();
return str2.compareTo(str1);
}
});
for (String str : list) {
System.out.println(str);
}
}
}
自己写一个集合类,插入数据的时候就把它拍序了呗
一个简单的建议,可以使用临时表,将多个sql查询的数据全部塞进一个临时表中,然后通过数据库排序,这样速度又快,还省却自己的排序。
1.list集合中的对象JavaBean实现Comparable接口,在实现的int compareTo()方法中例如方法中可以这样写:
public int compareTo(Object obj){
JavaBean bean = (JavaBean) obj;
return this.date.compareTo(bean.date);
}
2.将对象放入list集合中
2.Collection.sort(list);
Sub method()
Dim x
Dim y
Dim a
Dim b
i = 1
Do While Cells(1, i) <> ""
i = i + 1
Loop
j = 1
Do While Cells(j, 1) <> ""
j = j + 1
Loop
For m = 1 To j - 1
For n = 1 To i - 1
x = InStr(Cells(m, n), "(")
y = InStrRev(Cells(m, n), ")")
a = Left(Cells(m, n), x - 1)
b = Mid(Cells(m, n), x + 1, y - x - 1)
Cells(m, n) = a
Cells(m, n + 1) = b
Next n
Next m
End Sub
直接在SQL里加一个order by吧,这样查询的结果自然是已经排序过的了
参考Comparable接口,可以实现
只用这个就ok.
Collection.sort(list);
你的意思是取出来才继续排序么?可以的话最好在sql语句上加上排序,取出来之后排序写一个排序方法咯,不过效率就低了些!
各种排序算法都能实现