Java如何实现List自定义排序

时间:2022-09-19 19:59:30

实体类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.whty.entity;
 
public class User {
    private int id;
    private String name;
    private int age;
    
    public User(int id, String name, int age) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
    }
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
 
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
    }
}

测试类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.whty.test;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
 
import com.whty.entity.User;
 
public class Test {
    public static void main(String[] args) {
        List<User> list = new ArrayList<>();
        list.add(new User(1, "java", 20));
        list.add(new User(2, "spark", 19));
        list.add(new User(3, "hive", 21));
        
        for(User user :list) {
            System.out.println("排序前:" + user.toString());
        }
        //实现排序
        Collections.sort(list, new Comparator<User>() {
            @Override
            public int compare(User u1, User u2) {
                if(u1.getAge() > u2.getAge()) {
                    //return -1:即为正序排序
                    return -1;
                }else if (u1.getAge() == u2.getAge()) {
                    return 0;
                }else {
                    //return 1: 即为倒序排序
                    return 1;
                }
            }
        });
        
        for(User user :list) {
            System.out.println("排序后:" + user.toString());
        }
    }
}

运行结果

排序前:User [id=1, name=java, age=20]
排序前:User [id=2, name=spark, age=19]
排序前:User [id=3, name=hive, age=21]
排序后:User [id=3, name=hive, age=21]
排序后:User [id=1, name=java, age=20]
排序后:User [id=2, name=spark, age=19]

以上就是Java如何实现List自定义排序的详细内容,更多关于Java List自定义排序的资料请关注服务器之家其它相关文章!

原文链接:https://cloud.tencent.com/developer/article/1639912