【发布时间】:2019-07-28 15:11:06
【问题描述】:
我有一个这样的数据集:
1,JOHN,1934
2,TERENCE,1914
3,JOHN,1964
4,JOHN,1904
5,JOHN,1924
6,JOHN,1954
7,JOHN,1944
8,JOHN,1984
9,JOHN,1974
10,JOHN,1994
我已经从这样的文本文件中加载了 String[] 的 ArrayList:
ArrayList<String[]> records = new ArrayList<>();
String fileLocation = System.getProperty("user.dir");
String dataPath = fileLocation + File.separator + "boys-names.txt";
try {
try (BufferedReader br = new BufferedReader(new FileReader(dataPath))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
records.add(values);
}
}
} catch (IOException e) {
e.printStackTrace();
}
我想像这样对增加年的数据集进行排序:
4,JOHN,1904
2,TERENCE,1914
5,JOHN,1924
1,JOHN,1934
7,JOHN,1944
6,JOHN,1954
3,JOHN,1964
9,JOHN,1974
8,JOHN,1984
10,JOHN,1994
问题: ArrayList 的内置排序方法Collections.sort(list); 仅适用于单一类型的数据。但是,在我的情况下,我有多种类型的字符串(字符串整数),并且排序应该基于 Integers。那么,有没有办法解决这个问题呢?
【问题讨论】:
-
正确的方法不是使用字符串数组,而是将每一行解析为一个适当的对象,该对象具有 ID、名称和年份,并列出该对象。然后您可以使用
Comparator进行排序。 -
让我看看这个
-
你的每个列表的String数组长度是固定的吗?