java根据时间排序list,使用collections.sort()

public class User {
	private String name;
	private String birthday;

	public User(String name, String birthday) {
		super();
		this.name = name;
		this.birthday = birthday;
	}

	public String getName() {
		return name;
	}

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

	public String getBirthday() {
		return birthday;
	}

	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}
}

 

import java.util.Comparator;
//接口 Comparator
//强行对某个对象 collection 进行整体排序 的比较函数。
//可以将 Comparator 传递给 sort 方法(如 Collections.sort 或 Arrays.sort),
//从而允许在排序顺序上实现精确控制

public class SortClass implements Comparator {

	@Override
	public int compare(Object o1, Object o2) {
		// TODO 自动生成的方法存根
		User user1 = (User) o1;
		User user2 = (User) o2;
//		public int compareTo(String anotherString)
//		按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。
//		按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。
//		如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。
//		如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。
//		如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0。 
		
		int flag = user1.getBirthday().compareTo(user2.getBirthday());

		return flag;
	}

}

 

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

public class Test {
//	J2SE 提供的最后一个批注是 @SuppressWarnings。
//	该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。 
//  unchecked 执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。
	@SuppressWarnings("unchecked")
	public static void main(String[] args) {
    List list = new ArrayList();
		list.add(new User("张一","05-27 20:56"));
		list.add(new User("张二","01-01 12:04"));
		list.add(new User("张三","09-25 02:45"));
		list.add(new User("张四","05-27 19:56"));
		SortClass sortClass = new SortClass();
		//java.util 类 Collections
//		static  void 
//		 sort(List list, Comparator c) 
//		          根据指定比较器产生的顺序对指定列表进行排序。 
		Collections.sort(list, sortClass);
		
		for(int i=0;i

欢迎关注我的公众号

你可能感兴趣的:(Java)