【发布时间】:2019-12-09 08:55:50
【问题描述】:
我需要从列表中找到学生分数的最大和最小统计数据。该列表包含学生 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();
}
【问题讨论】:
-
你能证明任何努力编写代码来找到最大值和/或最小值吗?
-
有一个想法,您可以根据学生的分数对列表进行排序,并尝试分别获取列表的第一个和最后一个索引的最小值和最大值。
-
@SafeerAnsari 你可以在线性时间内完成。排序是不必要的。
-
提示:
IntStream.summaryStatistics(). -
只需初始化 2 个变量,最大可能和最小可能,然后在列表中迭代比较它们。