Java List集合排序Collections.sort

转自:https://www.cnblogs.com/linjiqin/p/5756660.html

1、排序测试类

复制代码

package com.ljq.test;

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

public class UserSort {

    public static void main(String[] args) {
        List<User> userList =new ArrayList<User>();
        userList.add(new User(1,2.2));
        userList.add(new User(2,1.1));
        userList.add(new User(3,4.4));
        userList.add(new User(4,5.5));
        userList.add(new User(5,3.3));
        
        Collections.sort(userList, new Comparator<User>() {
            public int compare(User u1, User u2) {
                return new Double(u1.getSalary()).compareTo(new Double(u2.getSalary())); //升序
                // return new Double(u2.getSalary()).compareTo(new Double(u2.getSalary())); //降序
            }
        });
        
        for(User user : userList){
            System.out.println(user);
        }
    }
}

2、User对象

public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    
    private long id; // 主键
    private double salary; // 薪资
}

3、多字段排序,基本数字类型要用封装数字类型才可以排序,如:new Double()

Collections.sort(dataList, new Comparator<OrderVO>(){
            public int compare(OrderVO a, OrderVO b) {
                //先按期号降序,如果期号相同按玩法名称降序,如果玩法名称相同按投注时间降序
                int result = b.getCreateTime().compareTo(a.getCreateTime());
                if(result == Zero.INT){
                    return new Integer(a.getSort()).compareTo(new Integer(b.getSort()));
                }else{
                    return result;
                }
            }
        });

猜你喜欢

转载自blog.csdn.net/yueguanyun/article/details/81544492