我需要从列表中找到学生成绩的最大和最小统计信息。该列表包含学生ID和学生标记。我不太确定该怎么做。
这是用于读取文件并创建列表的代码:
public void readFile(Scanner in)
{
inputStudentID = null;
inputMark = 0;
try
{
File file = new File("Marks.txt");
in = new Scanner(file);
}
catch (FileNotFoundException e)
{
System.out.println(e.getMessage());
System.out.println("in " + System.getProperty("user.dir"));
System.exit(1);
}
while (in.hasNextLine())
{
String studentRecord = in.nextLine();
List<String> values = Arrays.asList(studentRecord.split(","));
String inputStudentID = values.get(0);
String sInputMark;
sInputMark = values.get(1);
int inputMark = Integer.parseInt(sInputMark);
addStudent(inputStudentID, inputMark);
}
in.close();
}
答案 0 :(得分:1)
假设您有一些索引列表,因为addStudent并没有真正告诉我(否则只需将逻辑应用于您拥有的任何内容)即可:
private int getMax(ArrayList<Integer> marks) {
int max = marks.get(0);
int index = 0;
for(int x = 1; x < marks.size(); x++) {
if(max < marks.get(x)) {
max = marks.get(x);
index = x;
}
}
return index;
}
更好的解决方案:
您可以简单地执行Collections.max(list)–假想南瓜
但是,我仍将离开我,以展示如何找到最大值的逻辑。