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
。