对任意对象列表进行排序

实现步骤:

    1.必须 implements Comparable<T> T:要排序的对象

       2. 重写 compareTo() 【要根据对象的哪个属性排序就在里面实现】

     

复制代码
package com.zhao.algorithm.test;

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

/**
 * AUTHOR :zhao
 * 日期:2020/2/17 19:53
 * 对任意对象列表进行排序
 * 必须  implements Comparable<T> T:要排序的对象
 * 重写 compareTo()
 */
public class Sort implements Comparable<Sort> {
    private Integer id;
    private String name;

    public  Sort(Integer id,String name){
        this.id=id;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Sort{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }

    /**
     * 这个 返回正数表示大于 也就是正排序
     *   返回 0  等于
     *   返回 负数就是小于
     */
    @Override
    public int compareTo(Sort o) {
        return this.id-o.id;
    }

    public static void main(String[] args) {
        List<Sort> list=new ArrayList<>();
        for (int i = 10; i >0 ; i--) {
            list.add(new Sort(i,"名字"+i));
        }
        System.out.println("排序前"+list);
        Collections.sort(list);
        System.out.println("排序后"+list);
    }
}
复制代码

排序前[Sort{id=10, name='名字10'}, Sort{id=9, name='名字9'}, Sort{id=8, name='名字8'}, Sort{id=7, name='名字7'},

   Sort{id=6, name='名字6'}, Sort{id=5, name='名字5'}, Sort{id=4, name='名字4'}, Sort{id=3, name='名字3'},

   Sort{id=2, name='名字2'}, Sort{id=1, name='名字1'}]


排序后[Sort{id=1, name='名字1'}, Sort{id=2, name='名字2'}, Sort{id=3, name='名字3'}, Sort{id=4, name='名字4'},

   Sort{id=5, name='名字5'}, Sort{id=6, name='名字6'}, Sort{id=7, name='名字7'}, Sort{id=8, name='名字8'},

     Sort{id=9, name='名字9'}, Sort{id=10, name='名字10'}]

posted @ 2020-02-17 20:11  Angry-rookie  阅读(101)  评论(0)    收藏  举报
编辑推荐:
· 35+程序员的转型之路:经济寒冬中的希望与策略
· JavaScript中如何遍历对象?
· 领域模型应用
· 记一次 ADL 导致的 C++ 代码编译错误
· MySQL查询执行顺序:一张图看懂SQL是如何工作的
阅读排行:
· 35+程序员的转型之路:经济寒冬中的希望与策略
· 全球首位 AI 程序员 Devin 诞生了,对于程序员的影响到底多大?
· 使用 OpenAuth.Net 快速搭建 .NET 企业级权限工作流系统
· .NET 9 + React 开发的企业级后台权限管理系统,文档齐全,轻松上手
· 一款开源免费、通用的 WPF 主题控件包
点击右上角即可分享
微信分享提示