Java 是否基于先前比较变量的值进行比较?

Java 是否基于先前比较变量的值进行比较?,java,collections,Java,Collections,我想为我的一个类实现可比较的 我的测试阵列:A1、A2、A3、B1、B2、B3 我想这样分类: -按信件分类 -如果是一个然后递增的数字 -如果是B,则为降序数 预期结果:A1、A2、A3、B3、B2、B1 下面的代码总是给我字母和数字的升序,比如A1、A2、A3、B1、B2、B3。 如何根据字母Foo的顺序切换数字顺序 class Foo implements Comparable { String letter, int number; int compareTo(Foo

我想为我的一个类实现可比较的

我的测试阵列:
A1、A2、A3、B1、B2、B3

我想这样分类: -按信件分类

-如果是一个然后递增的数字

-如果是B,则为降序数

预期结果:
A1、A2、A3、B3、B2、B1

下面的代码总是给我字母和数字的升序,比如
A1、A2、A3、B1、B2、B3。
如何根据字母Foo的顺序切换数字顺序

class Foo implements Comparable {
    String letter, int number;

    int compareTo(Foo f) {
        int x = letter.compareTo(f.letter);
        return x != 0 ? x : number.compareTo(f.number);
    }
}

你可以这样做:

int compareTo(Foo f) {
    int x = letter.compareTo(f.letter);
    return x != 0 ? x 
         : letter.equals("A") ? number.compareTo(f.number)
                              : f.number.compareTo(number);
}

(这是假设您希望将所有非A值都视为降序,当然……

当字母为C时如何?这是因为与方法相比,您没有测试字母
A
B