使用整数对2d字符串数组进行排序

时间:2016-11-08 11:08:48

标签: java sorting

我创建了一个2d字符串数组(称为数据),它在第一个位置包含一个整数(作为字符串),在第二个位置包含一个指向文件的链接。

示例:

["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);
    }
});

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

2 个答案:

答案 0 :(得分:1)

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

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);
    }
});

答案 1 :(得分:0)

你可以这样做

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