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 {
    /**
     * 返回负数表示参数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);

欢迎小伙伴们留言交流哟

你可能感兴趣的:(Java使用Comparator来进行List排序)