我想用Java读取CSV文件并使用特定列对其进行排序.我的CSV文件如下所示:
ABC,DEF,11,GHI....
JKL,MNO,10,PQR....
STU,VWX,12,XYZ....
考虑到我想使用第三列对其进行排序,我的输出应如下所示:
JKL,MNO,10,PQR....
ABC,DEF,11,GHI....
STU,VWX,12,XYZ....
在对用于保存CSV数据的数据结构进行一些研究之后,这里的人建议使用Integer和List的Map数据结构作为键和值对in this question:
Map>
where the value, List = {[ABC,DEF,11,GHI....], [JKL,MNO,10,PQR....],[STU,VWX,12,XYZ....]...}
And the key will be an auto-incremented integer starting from 0.
那么有人可以建议一种方法来使用Java中“List”中的元素对此Map进行排序吗?此外,如果您认为这种数据结构选择不好,请随意建议更简单的数据结构来执行此操作.
谢谢.
解决方法:
我会使用String的ArrayList的ArrayList:
ArrayList>
每个条目都是一行,这是一个字符串列表.
您通过以下方式初始化列表:
List> csvLines = new ArrayList>();
要获得第n行:
List line = csvLines.get(n);
要对您编写自定义比较器进行排序.在该比较器的构造函数中,您可以传