繁体   English   中英

当用户指定列时,如何在Java中对二维数组排序?

[英]How to sort a 2-d array in java when column is specified by the user?

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

所以如果我有这个数组

row1 [[“”“,” cat“,” 3.25“],
row2 [“ 10”,“ dog”,“ 18.64”],
row3 [“ 2”,“ aaa”,“ 15.21”]]

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

考虑一维数组的常规排序算法。 它们中的大多数要么比较两个元素并确定是否交换它们,要么它们经过并找到最小的元素。 现在,如果您要按第一列进行排序,则可以执行类似的操作。 通过比较两个数组的第n个元素来比较两个数组,并确定是否交换它们。 或者,遍历所有数组并找到第n个元素最小的数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM