这是两个list得出来得结果集用得sql "select do.id, c.startTime ,c.ani from depat order by startTime desc";我把两个list合并成一个list后由于顺序乱了,我还想根据里面一个startTime属性值来排序应该怎么做啊,排序完放入另外一个新的list
List resultSet = new ArrayList();
List resultSetOne = null;
List resultSetTwo = null;
resultSetOne = queryOne.list();
resultSetTwo = queryTwo.list();
resultSet.addAll(resultSetOne);
resultSet.addAll(resultSetTwo);
List resultSet = new ArrayList();
List resultSetOne = null;
List resultSetTwo = null;
resultSetOne = queryOne.list();
resultSetTwo = queryTwo.list();
resultSet.addAll(resultSetOne);
resultSet.addAll(resultSetTwo);
Comparator comp = new MyCom();
Collections.sort(resultSet,comp);
Comparator comp = new MyCom();
Collections.sort(resultSet,comp);
实现如下:package bt_lose;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;/**
* 简单实体
*
* @author botao
*
*/
public class User {
@Override
public String toString() { return "User: id=" + uid + " uname=" + uname + " upass=" + upass;
} private int uid; private String uname; private String upass; public String getUname() {
return uname;
} public void setUname(String uname) {
this.uname = uname;
} public String getUpass() {
return upass;
} public void setUpass(String upass) {
this.upass = upass;
} public User() { } public User(int id, String name, String pass) {
this.uid = id;
this.uname = name;
this.upass = pass;
} public int getUid() {
return uid;
} public void setUid(int uid) {
this.uid = uid;
} public static void main(String[] args) {
List<User> list = new ArrayList<User>();
list.add(new User(1, "name1", "pass1"));
list.add(new User(3, "name3", "pass3"));
list.add(new User(2, "name2", "pass2"));
list.add(new User(4, "name4", "pass4"));
System.out.println("before sort");
for (User user : list) {
System.out.println(user);
}
//比较器是通过匿名类来做的
Collections.sort(list, new Comparator<User>() { public int compare(User arg0, User arg1) {
//定义如何比较
return arg0.getUid() - arg1.getUid();
}
});
System.out.println("after sort");
for (User user : list) {
System.out.println(user);
}
}
}
Depat d1 = (Depat) o1;
Depat d2 = (Depat) o2;
return d1.getStartTime().after(d2.getStartTime())?1:0;
}
MyObject obj1 = (MyObject) o1;
MyObject obj2 = (MyObject) o2;
return obj1.getStartTime().before(obj2.getStartTime())?1:0;
}}package test1.sort;import java.util.Date;public class MyObject {
private int id;
private Date startTime;
private String ani;
public MyObject(int id,Date startTime,String ani) {
this.id = id;
this.startTime = startTime;
this.ani = ani;
}
public String getAni() {
return ani;
}
public void setAni(String ani) {
this.ani = ani;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
}package test1.sort;import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Test { /**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyyMMDD");
List list = new ArrayList();
MyObject o1 = new MyObject(1,format.parse("20071220"),"1");
MyObject o2 = new MyObject(2,format.parse("20071219"),"1");
MyObject o3 = new MyObject(3,format.parse("20071217"),"1");
MyObject o4 = new MyObject(4,format.parse("20071222"),"1");
MyObject o5 = new MyObject(5,format.parse("20071223"),"1");
list.add(o1);
list.add(o2);
list.add(o3);
list.add(o4);
list.add(o5);
Collections.sort(list, new MyComparator());
for (int i = 0; i < list.size(); i++) {
MyObject temp = (MyObject)list.get(i);
System.out.println(format.format(temp.getStartTime()));
}
}}