按浮点值排序2D Java数组

问题描述 投票:0回答:2

我用从互联网上获得的一些JSON值做了一些Java编码。我将这些值放入一个字符串数组中,进行打印,然后寻找最佳(也就是最高)分数及其“父”数据集。但是最后最好是自动按照此分数对它们进行排序。

数组看起来像:

myArray[0][0] = "John"
myArray[0][1] = "20"       //(<- int to String)
myArray[0][2] = "21.356"   //(<- float to String)
myArray[1][0] = "Sarah"    //data
myArray[1][1] = "32"       //data
myArray[1][2] = "27.045"   //score to be sorted on

[此外,我还考虑过在将数据集放入数组之前对数据集进行排序,但是由于它们采用纯文本格式(通过从网站读取json值),因此我必须在排序之前将这些值进行连接,这就是点,首先我必须手动将它们放在数组中。

有没有一种有效的方法来对数组进行排序?

java arrays sorting
2个回答
1
投票

如果要使用字符串中的值对字符串进行排序(可以在此处得分),则可以创建自定义比较器。像:

Arrays.sort(myarray, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
        }
    });

另外,您可以编写另一个比较器以使用特定列对2d数组进行排序。


0
投票

如果我对您的理解正确,则可以从数组中创建一个流,然后使用类似的内容:

...
.sorted(Comparator.comparingDouble(Double::parseDouble))
...
© www.soinside.com 2019 - 2024. All rights reserved.