我用从互联网上获得的一些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值),因此我必须在排序之前将这些值进行连接,这就是点,首先我必须手动将它们放在数组中。
有没有一种有效的方法来对数组进行排序?
如果要使用字符串中的值对字符串进行排序(可以在此处得分),则可以创建自定义比较器。像:
Arrays.sort(myarray, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.valueOf(o1).compareTo(Integer.valueOf(o2));
}
});
另外,您可以编写另一个比较器以使用特定列对2d数组进行排序。
如果我对您的理解正确,则可以从数组中创建一个流,然后使用类似的内容:
...
.sorted(Comparator.comparingDouble(Double::parseDouble))
...