本文概要:在java中怎么样对一个list按自己的想法进行任意排序.比如按list中元素的name属性或按time属性.

主要用到了Collections.sort()方法,
该方法有2个重载.其中一个方法只有一个参数,即排序对象,排序方法默认(这个我没试过,你可以自己试试)

[FONT-COLOR=Red](纠错:此方法并不是默认排

本文概要:在java中怎么样对一个list按自己的想法进行任意排序.比如按list中元素的name属性或按time属性.

主要用到了Collections.sort()方法, 该方法有2个重载.其中一个方法只有一个参数,即排序对象,排序方法默认(这个我没试过,你可以自己试试) (纠错:此方法并不是默认排序) 第二个方法有2个参数,第一个参数即为排序对象,第二个参数是个Comparetor,这就是今天要讲的. 直接看代码吧,3个java类,很简单,一看就懂.

User.java

[code lang="java"]</span>

import java.util.Date;

public class User {
private Date time;
private String name;

public User(Date time, String name) {
this.time = time;
this.name = name;
}

public String toString() {
return "[name:" + name + ",time:" + time.toLocaleString() + "]";
}

public Date getTime() {
return time;
}

public void setTime(Date time) {
this.time = time;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

[/code]

UserComparetor.java

[java]

import java.util.Comparator;

public class UserComparetor implements Comparator {

@Override
public int compare(User o1, User o2) {
long l1 = o1.getTime().getTime();
long l2 = o2.getTime().getTime();
if (l1 > l2)
return 1;
else if (l1 < l2)
return -1;
else
return 0;
}
}

[/java]

Test.java

[java]

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.List;

public class Test {
public static void main(String[] args) {
List us=new ArrayList();
Calendar cal=Calendar.getInstance();
cal.set(2010, 5, 6);
User u=new User(cal.getTime(),"许嵩");
us.add(u);

cal.set(2009, 5, 30);
u=new User(cal.getTime(),"张杰");
us.add(u);

cal.set(2010, 3, 1);
u=new User(cal.getTime(),"张靓颖");
us.add(u);

for(User user:us){
System.out.println(user);
}
System.out.println("排序后");
Collections.sort(us, new UserComparetor());
for(User user:us){
System.out.println(user);
}
}
}

[/java]