List 排序

1、List中对象实现Comparable接口
2、Collections.sort 重载方法来实现
注:实现和重载方法返回 1 升序、-1 倒序、0 顺序

public class User implements Comparable<User>{

    private String name;
    private Integer age;

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

    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;
    }

    public int compareTo(User user2) {

        return this.getAge().compareTo(user2.getAge());  
    }

}
public class User1 {

    private String name;
    private Integer age;

    public User1(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    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;
    }

}

测试类

public class Test {

    public static void main(String[] args) {
        User user1 = new User("name1",1);
        User user2 = new User("name2",3);
        User user3 = new User("name3",1);
        User user4 = new User("name4",4);
        User user5 = new User("name5",2);
        List<User> list1 = new ArrayList<User>();
        list1.add(user1);
        list1.add(user2);
        list1.add(user3);
        list1.add(user4);
        list1.add(user5);
        Collections.sort(list1);  
        for(User user : list1){  
            System.out.println(user.getName()+"--"+user.getAge());  
        }  

        User1 user6 = new User1("name6",1);
        User1 user7 = new User1("name7",3);
        User1 user8 = new User1("name8",1);
        User1 user9 = new User1("name9",4);
        User1 user10 = new User1("name10",2);
        List<User1> list2 = new ArrayList<User1>();
        list2.add(user6);
        list2.add(user7);
        list2.add(user8);
        list2.add(user9);
        list2.add(user10);

        Collections.sort(list2,new Comparator<User1>(){  
            public int compare(User1 user1, User1 user2) {  
                return user1.getAge().compareTo(user2.getAge());  
            }  
        });  
        for(User1 user : list2){  
            System.out.println(user.getName()+"--"+user.getAge());  
        }  
    }
}

结果:
    name1--1
    name3--1
    name5--2
    name2--3
    name4--4
    ---------------
    name6--1
    name8--1
    name10--2
    name7--3
    name9--4

猜你喜欢

转载自blog.csdn.net/bluesky003/article/details/80057686
今日推荐