0

我想按列对二维数组进行排序。该数组来自 csv 文件,有些列是字符串,有些是整数,有些是双精度。用户应该能够指定列号。

所以如果我有这个数组

第 1 行 [[“1”,“猫”,“3.25”],第
2 行 [“10”,“狗”,“18.64”],
第 3 行 [“2”,“aaa”,“15.21”]]

并且第一列已排序,行将按 1、3、2 排序。不是 1,2,3 作为简单的字符串排序会返回。我知道我可以使用 Arrays.sort 方法并创建自己的比较器并使用 try catch 来确定指定列中的字符串是整数还是双精度数,但这对于看起来如此简单的事情来说似乎有点多。

4

1 回答 1

0

考虑一维数组的常规排序算法。他们中的大多数要么比较两个元素并确定是否交换它们,要么遍历并找到最小的元素。现在,如果你按第一列排序,你会做类似的事情。通过比较它们的第n个元素来比较两个数组,并确定是否交换它们。或者,遍历所有数组并找到具有最小第n个元素的数组。

于 2016-10-11T01:16:07.863 回答