Java 排序

Page 454, 16.7.4. 数组排序 ——《java 编程思想(第四版)》 使用内置的排序方法,就可以对任意的基本类型数组排序,也可以对任意的对向数组进行排序,只要该对象实现了 Comparable 接口或具有相关联的 Comparator。

举个例子:

我们有一个 Fraction 的对象,包括分母(b),以及分子(a),但是我们要根据它的分数值(a/b)进行排序:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Fraction[] c = new Fraction[n];
        Arrays.sort(c);
        // 下面这个是反向排序
        // Arrays.sort(c, Collections.reverseOrder());
    }
};

class Fraction implements Comparable<Fraction> {
    public int a, b;
    public Fraction(int a, int b) {
        this.a = a;
        this.b = b;
    }
    public int compareTo(Fraction that) {
        long ans = (long)this.a * that.b - (long)this.b * that.a;
        return ans == 0 ? 0 : ans > 0 ? 1 : -1;
    }
}

【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2015/03/java-sort.html【Java 排序】

发表评论

电子邮件地址不会被公开。 必填项已用*标注