sort(List list, Comparator

1.User實體類:

package com.book.model;

public class User {
	private String name;

	private String age;

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

	public String getName() {
		return name;
	}

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

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

}

2.ComparatorUser(自定比較器)

package com.company.lib.controllers;

import java.util.Comparator;

import com.book.model.User;

public class ComparatorUser implements Comparator {

	@Override
	public int compare(Object o1, Object o2) {
		User user0 = (User) o1;
		User user1 = (User) o2;
		// 首先比較age,其實比較姓名
		int flag = user0.getAge().compareTo(user0.getAge());
		if (flag == 0) {
			return user0.getName().compareTo(user0.getName());
		}
		else {
			return flag;
		}
	}

}

3.測試類

package com.company.lib.controllers;

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

import com.book.model.User;

public class SortTest {
	public static void main(String[] args) {
		List<User> userlist = new ArrayList<User>();
		userlist.add(new User("dd", "4"));
		userlist.add(new User("aa", "1"));
		userlist.add(new User("ee", "5"));
		userlist.add(new User("bb", "2"));
		userlist.add(new User("ff", "5"));
		userlist.add(new User("cc", "3"));
		userlist.add(new User("gg", "6"));

		ComparatorUser comparator = new ComparatorUser();
		Collections.sort(userlist, comparator);
		for (int i = 0; i < userlist.size(); i++) {
			User u = (User) userlist.get(i);
			System.out.println(u.getAge() + " , " + u.getName());
		}

	}
}

4.結果:

4 , dd
1 , aa
5 , ee   --age 5的   ee在前
2 , bb
5 , ff
3 , cc
6 , gg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章