import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
*
*/
/**
* 类说明: List排序三种示例
* Time: 2014-1-21 下午3:25:17
* @author 凯文加内特
* Company: http://weibo.com/u/3165936675
*/
public class ListSort {
class User {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private String name;//姓名
public Integer age;//年龄
}
class Dog implements Comparable<Dog> {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
private String name;
private Integer age;
@Override
public int compareTo(Dog dog) {
return this.getAge().compareTo(dog.getAge());
}
}
class Cat implements Comparator<Cat> {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
private String name;
private Integer age;
@Override
public int compare(Cat o1, Cat o2) {
return o1.getAge().compareTo(o2.getAge());
}
}
public static void main(String[] args) {
System.out.println("====Collections.sort重载方法实现开始====");
List<User> users = new ArrayList<User>();
ListSort sort = new ListSort();
User u1 = sort.new User();
u1.setName("郭德纲");
u1.setAge(40);
User u2 = sort.new User();
u2.setName("于谦");
u2.setAge(35);
User u3 = sort.new User();
u3.setName("奥斯特洛夫斯基");
u3.setAge(80);
users.add(u1);
users.add(u2);
users.add(u3);
//根据Collections.sort重载方法来实现
Collections.sort(users, new Comparator<User>() {
@Override
public int compare(User u1, User u2) {
return u1.getAge().compareTo(u2.getAge());
}
});
for (User user : users) {
System.out.println(user.getName() + "的年龄:" + user.getAge());
}
System.out.println("====Collections.sort重载方法实现结束====");
System.out.println("====实现Comparable开始====");
List<Dog> dogs = new ArrayList<Dog>();
Dog d1 = sort.new Dog();
d1.setName("能能");
d1.setAge(3);
Dog d2 = sort.new Dog();
d2.setName("肥肥");
d2.setAge(2);
Dog d3 = sort.new Dog();
d3.setName("老豆豆");
d3.setAge(7);
dogs.add(d1);
dogs.add(d2);
dogs.add(d3);
for (Dog dog : dogs) {
System.out.println(dog.getName() + "的年龄:" + dog.getAge());
}
System.out.println("====实现Comparable结束====");
System.out.println("====实现Comparator开始====");
List<Cat> cats = new ArrayList<Cat>();
Cat c1 = sort.new Cat();
c1.setName("花花");
c1.setAge(3);
Cat c2 = sort.new Cat();
c2.setName("贱仔");
c2.setAge(3);
Cat c3 = sort.new Cat();
c3.setName("福福");
c3.setAge(3);
cats.add(c1);
cats.add(c2);
cats.add(c3);
for (Cat cat : cats) {
System.out.println(cat.getName() + "年龄:" + cat.getAge());
}
System.out.println("====实现Comparator结束====");
}
}
转载于:https://my.oschina.net/ydsakyclguozi/blog/194761