这可以通过实现自己的排序例程来完成,但更好的方法是重构.
尝试将数据封装为数字对的数组,每对数据都包含在自己的对象中.然后,您可以对第一个值进行排序并访问任一值.
class Pair> implements Comparable> {
final T a;
final T b;
public Pair ( T a, T b ) {
this.a = a;
this.b = b;
}
@Override
public int compareTo(Pair o) {
// Comparison on 'a' only.
return a.compareTo(o.a);
}
@Override
public String toString () {
return "{" + a + "," + b + "}";
}
}
public static void main(String args[]) {
Pair[] pairs = {
new Pair(1,2),
new Pair(7,4),
new Pair(6,8),
};
System.out.println("Before: "+Arrays.toString(pairs));
Arrays.sort(pairs);
System.out.println("After: "+Arrays.toString(pairs));
}
版画
Before: [{1,2}, {7,4}, {6,8}]
After: [{1,2}, {6,8}, {7,4}]