Java排序数组

标签 java arrays sorting

我知道如何对具有两列的数组进行排序:

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/

相关文章:

java - Android登录任意asp网站

ruby - 如果字符串包含任何字符串数组,如何检查 ruby

javascript - 如何在 jQuery 数组中找到 indexOf 元素?

php - 排序多维数组中的文件列表

amazon-web-services - DynamoDB 查询按名称排序的所有用户

python - 排序算法命名法

Java - Google Drive API v3 - 返回文件的特定字段 - 语法

java - 在使用 OpenURL 命令通过 Java WebAgent 接收 POST 时,Lotus 更改的字符

c++ - 在 MIPS 上调用两次的子程序

java - 多字段ognl类型转换器