如何在Java中从列表中找到最大值和最小值

时间:2019-07-31 19:14:34

标签: java max min

我需要从列表中找到学生成绩的最大和最小统计信息。该列表包含学生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();
}

1 个答案:

答案 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)–假想南瓜

但是,我仍将离开我,以展示如何找到最大值的逻辑。