zoukankan      html  css  js  c++  java
  • Java Collections.sort方法对list集合排序

    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对象,存储javabean属性

    复制代码
    package com.ljq.test;
    
    import java.io.Serializable;
    
    /**
     * 用户
     *
     * @author jqlin
     */
    public class User implements Serializable{
        private static final long serialVersionUID = 1L;
        
        private long id; // 主键
        private double salary; // 薪资
    
        public User() {
    
        }
    
        public User(long id, double salary) {
            super();
            this.id = id;
            this.salary = salary;
        }
    
        public long getId() {
            return id;
        }
    
        public void setId(long id) {
            this.id = id;
        }
    
        public double getSalary() {
            return salary;
        }
    
        public void setSalary(double salary) {
            this.salary = salary;
        }
    
        @Override
        public String toString() {
            return "User [id=" + id + ", salary=" + 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;
                    }
                }
            });
    复制代码
  • 相关阅读:
    (转)Java 详解 JVM 工作原理和流程
    sql复杂查询语句总结
    公众平台服务号、订阅号、企业号的相关说明
    新公司注册流程
    认缴出资额和实缴出资额的区别
    ***iOS学习之Table View的简单使用和DEMO示例(共Plain普通+Grouped分组两种)
    APP后端处理视频的方案
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
    app后端搜索入门
    APP后端处理表情的一些技巧
  • 原文地址:https://www.cnblogs.com/fuhengheng/p/7992489.html
Copyright © 2011-2022 走看看