Java使用Comparator来进行List排序


1.定义实体类,找到想比较的属性(比如文件实体类按时间来排序)

public class FileInfo implements Serializable {
    private static final long serialVersionUID = 7093059183697304057L;
    private String fileName;
    private String filePath; // 路径
    private double fileSize; // 文件大小 
    private long fileLastTime; // 最近修改时间  
        //省略构造方法 和get set 方法
}

2.定义比较类

public class ContentComparator implements Comparator<FileInfo> {
    /**
     * 返回负数表示参数1 小于参数2
     */
    @Override
    public int compare(FileInfo lhs, FileInfo rhs) {
        long key1 = lhs.getFileLastTime(); //需要比较的属性
        long key2 = rhs.getFileLastTime();
        // 如果key1大返回1 否则(如果key1小于key2 返回-1 否则返回0)
        return key1 > key2 ? 1 : key1 < key2 ? -1 : 0;
    }
}

3.调用

//docList 为 泛型为FileInfo的List。
Collections.sort(docList, new ContentComparator());
//如果需要倒序
Collections.reverse(docList);

欢迎小伙伴们留言交流哟

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 由于最近要换工作,发现现在用人单位很多都需要有TCP/IP方面的知识,但是最近几年的工作中基本上都只用到HTTP协...
    hahaJava阅读 384评论 0 0
  • 爱人,你是否还记得,我们的牵手,是多么的不容易。世俗的目光,家长的反对······,最终,我们克服了所...
    荣儿姐阅读 331评论 6 10