我希望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);
}
}
答案 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值视为降序,当然......)