通过Collections实现排序

要进行排序的实体类,该实体类按照birthDay属性进行排序。

注意birthDay为String类型。

public class User2 {
	
	private String username;
	private String birthDate;

	public User2() {
		
	}
	
	public User2(String username, String birthDate) {
		super();
		this.username = username;
		this.birthDate = birthDate;
	}
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getBirthDate() {
		return birthDate;
	}

	public void setBirthDate(String birthDate) {
		this.birthDate = birthDate;
	}
}

 实现一个Comparator接口。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Comparator;
import java.util.Date;

public class User2Comparator implements Comparator<User2> {


	public int compare(User2 o1, User2 o2) {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date o1Date = new Date();
		Date o2Date = new Date();
		try {
			o1Date = df.parse(o1.getBirthDate());
			o2Date = df.parse(o2.getBirthDate());
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return o1Date.compareTo(o2Date);
	}

}

测试效果。

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

import org.junit.Test;

import com.boco.myeat.model.User2;
import com.boco.myeat.model.User2Comparator;


public class DateTest {
	
	@Test
	public void testDate(){
		List<User2> users = new ArrayList<User2>();
		User2 u1 = new User2("zhang", "1986-01-11 12:10:10");
		User2 u2 = new User2("wang", "1987-01-02 15:20:34");
		User2 u3 = new User2("li", "1984-01-02 15:20:34");		
		users.add(u1);
		users.add(u2);
		users.add(u3);
		for(User2 u : users){
			System.out.println(u.getUsername());
		}
		System.out.println("=============");
		Collections.sort(users, new User2Comparator());
		Collections.reverse(users);
		for(User2 u : users){
			System.out.println(u.getUsername());
		}
	}

}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值