java - 用整数对二维字符串数组进行排序

标签 java sorting

我创建了一个二维字符串数组(称为数据),其中第一个位置包含一个整数(作为字符串),第二个位置包含一个文件链接。

示例:

["3", "Test3.pdf"]; ["1", "Test1.pdf"];  ["2", "Test2.pdf"];  ["10", "Test10.pdf"]

所以现在我需要对数组按整数升序排序。所以排序的结果应该是一个排序数组,如下所示:

["1", "Test1.pdf"];  ["2", "Test2.pdf"];["3", "Test3.pdf"];["10", "Test10.pdf"]

我找到了一些示例代码:

Arrays.sort(data, new Comparator<String[]>() {
    @Override
    public int compare(final String[] entry1, final String[] entry2) {
        final String time1 = entry1[0];
        final String time2 = entry2[0];
        return time1.compareTo(time2);
    }
});

但问题是,在这种情况下,它将它与字符串逻辑进行比较,因此结果将是 -> 1,10,2,3。所以我无法用这个来存档结果。你知道我能做什么吗?你只能有一种类型的二维数组?不是字符串和整数的混合?

最佳答案

可以通过将第一个元素转换为整数来完成比较,如以下代码片段所示:

Arrays.sort(data, new Comparator<String[]>() {
    @Override
    public int compare(final String[] entry1, final String[] entry2) {
        final Integer time1 = Integer.valueOf(entry1[0]);
        final Integer time2 = Integer.valueOf(entry2[0]);
        return time1.compareTo(time2);
    }
});

关于java - 用整数对二维字符串数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40485338/

相关文章:

java - |= 运算符在 Java 中有什么作用?

java - 从 Selenium 测试 onbeforeunload 事件

java - Ceylon 和 Java 之间的互操作性 : How to share an import from 'ceylon.language'

javascript - 如何按月份然后按客户对一系列产品销售进行分组

java - 查找此特定快速排序算法中的比较次数

java - 使用 java 将电子邮件转换为其原始格式

java - HTTP 状态 500 - 权限被拒绝

java - 在java快速排序中添加额外的排序条件

javascript - underscorejs groupby 和过滤器

Python 列表用字符串排序