我编写的代码使用文件中的数据填充二维数组。
public static Collection getBrowser() {
return Arrays.asList(readFromFile("arr.txt"));
}
private static Object[][] readFromFile(String filePath) {
try {
InputStream inputStream = new FileInputStream(filePath);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
StringBuilder string = new StringBuilder();
while (reader.ready()) {
string.append(reader.readLine());
string.append(System.getProperty("line.separator"));
}
reader.close();
String[] lineSplit = string.toString().split(System.getProperty("line.separator"));
Object[][] result = new Object[lineSplit.length][];
for (int i = 0; i < lineSplit.length; i++) {
String line = lineSplit[i];
String[] itemSplit = line.split(",");
result[i] = new Object[itemSplit.length];
for (int j = 0; j < itemSplit.length; j++) {
if (j == 0) {
result[i][j] = Integer.valueOf(itemSplit[j]);
} else {
result[i][j] = itemSplit[j];
}
System.out.print(result[i][j]+" ");
}
//System.out.println();
}
return result;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
示例文件
1000, a, a, x
1000, x, x, y
1200, c, c, y
请告诉我,如何通过将每行扫描到一个单独的数组中,按最后一个值对此数组进行排序
Arr1
1000, a, a, x
Arr2
1000, x, x, y
1200, c, c, y
答案 0 :(得分:1)
到目前为止,您的方向很好,所以您可以阅读文件......您接下来要做什么?
对我而言,它看起来并不像2D数组,但更像是对象数组。定义对象以包装数据和使用Comparator。
一旦您实施了比较器,您就可以致电Arrays.sort(array, comparator)
。
请在此处查看一些帮助:How to use Comparator in Java to sort
你不需要分成两个数组并单独排序,一旦你更熟悉比较器,你可以一次性完成...