java中怎么样对list进行排序
本文概要:在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]