比较基于先前比较变量的值?

时间:2012-10-17 21:57:56

标签: java collections

我希望implement Comparable为我的一个班级。

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

我想要这样: - 按字母分类

- 如果是升序数

-if 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);
    }
}

1 个答案:

答案 0 :(得分:2)

你可以这样做:

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值视为降序,当然......)

相关问题