我知道如何对具有两列的数组进行排序:
Arrays.sort(myarray, new Comparator<String[]>() {
@Override
public int compare(String[] entry1, String[] entry2) {
String time1 = entry1[0];
String time2 = entry2[0];
return time2.compareTo(time1);
}
});
这按第一列对数组进行排序。 但是,如果我有更多列怎么办?例如
myarray[0][0]= +3620205252
myarray[0][1]= 32534
myarray[0][2]= Franco Nera
myarray[0][3]= 183
myarray[1][0]= +3658300234
myarray[1][1]= 4334
myarray[1][2]= Judy Moira
myarray[1][3]= 28
等等 我想对此进行排序,例如通过第二列或第四列... 我可以尝试通过创建一个新数组[第 1+3+4 列][第 2 列] 来解决这个问题,然后使用上述解决方案对其进行排序,然后将元素分开,但这太间接了。
最佳答案
要按不同列排序,只需替换这些行中的[0]
:
String time1 = entry1[0];
String time2 = entry2[0];
如果您想按多个 列排序,您需要先按最高顺序偏好进行比较,例如:
String time1 = entry1[0];
String time2 = entry2[0];
int cmp = time2.compareTo(time1);
然后如果结果为零(即它们相等),则按下一个最高偏好进行比较:
if (cmp == 0) {
String s1 = entry1[1];
String s2 = entry2[1];
cmp = s2.compareTo(s1);
}
return cmp;
关于Java排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7726513/