我想按列对二维数组进行排序。该数组来自csv文件,有些列是字符串,有些是整数,有些是双精度。用户应该能够指定列号。
所以如果我有这个数组
row1 [[“1”,“cat”,“3.25”],
row2 [“10”,“dog”,“18.64”],
row3 [“2”,“aaa”,“15.21”]]
并且第一列被排序,行将被排序为1,3,2。不是1,2,3作为简单的字符串排序将返回。我知道我可以使用Arrays.sort方法,只需创建自己的比较器并使用try catch来确定指定列中的字符串是整数还是双精度,但对于看似简单的东西来说似乎有点多。
答案 0 :(得分:0)
考虑一维阵列的常规排序算法。他们中的大多数要么比较两个元素并确定是否交换它们,要么它们通过并找到最小的元素。现在,如果按第一列排序,则执行类似的操作。通过比较它们的 n -th元素来比较两个数组,并确定是否要交换它们。或者,浏览所有数组,找到 n -th元素最小的数组。