【发布时间】:2019-08-23 15:40:11
【问题描述】:
所以我正在尝试对到达时间的列进行排序,以便最早的到达时间排在第一位。我对 Java 中的 csv 文件很陌生,所以很挣扎。
我已设法读取 csv 文件并使用数组进行打印,但不确定如何对特定列进行排序
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class readCSV {
public static void main(String[] args) {
String fileName= "csv.csv";
File file= new File(fileName);
// this gives you a 2-dimensional array of strings
List<List<String>> lines = new ArrayList<>();
Scanner inputStream;
try{
inputStream = new Scanner(file);
while(inputStream.hasNext()){
String line= inputStream.next();
String[] values = line.split(",");
// this adds the currently parsed line to the 2-dimensional string array
lines.add(Arrays.asList(values));
//System.out.println(line);
System.out.println(values[0] + ' ' + values[1] + ' ' + values[2] + ' ' + values[3] );
}
inputStream.close();
}catch (FileNotFoundException e) {
e.printStackTrace();
}
// the following code lets you iterate through the 2-dimensional array
/*int lineNo = 1;
for(List<String> line: lines) {
int columnNo = 1;
for (String value: line) {
System.out.println("Line " + lineNo + " Column " + columnNo + ": " + value);
columnNo++;
}
lineNo++;
}*/
}
}
如果有任何其他改进,例如存储 csv、打印等,我很乐意更改它
这是一个输入示例:
processID arrivalTime burstTime priority
1 0 5 1
2 1 7 2
3 0 2 1
4 2 6 2
5 6 10 3
6 5 4 4
7 6 4 7
8 5 4 8
9 6 6 3
10 6 7 2
【问题讨论】:
-
可能希望将其存储在具有地图 Map
的对象中,并为该对象创建自己的排序方法。这样,当它在列表中时,您可以轻松对其进行排序。 (如果你有时间我会创建代码并上传它作为答案) -
是的,我有时间,我会试一试并尝试使用地图进行操作,但非常感谢您查看您的代码
-
对不起,拖了这么久,但我把答案贴在下面:) 希望对你有帮助!
-
谢谢,不用担心。我想我明白了,但是我将在哪里使用我拥有的 csv 文件,例如上面的示例
-
只需将我的部分复制到 'String[] lineValues = s.split(",");'并替换您的 'String[] values ...' 下的部分 :)
标签: java csv operating-system scheduling