java - java 以降序打印文件内容

标签 java

我需要编写一个 Java 程序,可以从包含学生姓名和成绩的文件中读取数据。我必须找到每个学生的最高成绩,然后将他的名字和最高成绩写入一个新文件中。我已经能够做到这一点。问题是,学生应该根据他们的最高成绩按降序打印,但我不知道如何做到这一点。你能帮我吗?谢谢!

public class NotaMax {
    public static void main(String args[]) throws FileNotFoundException{
        Scanner input=new Scanner(new File("teksti.txt"));
        PrintStream output=new PrintStream(new File("max.txt"));
        while(input.hasNextLine()) {
            String rreshti=input.nextLine();
            max(rreshti,output);
        }
    }

    public static void max(String text,PrintStream output) {
        Scanner data=new Scanner(text);
        String emri=data.next();
        double max=0;
        while(data.hasNext()) {
            double nota=data.nextDouble();
            if(nota>max) {
                max=nota;
            }
        }
        output.println(""+emri+":"+max);
    }
}

最佳答案

有两种方法可以实现此目的,一种是填充另一种。

您可以将它们保存在 ArrayList 中,然后调用 Array#reverse 方法,这样它将反转 ArrayList。为了增加另一层确定性,最好创建一个名为 StudentObject/Class 并应用一个 Comparator ArrayList#sort 方法以确保结果。 然而,这比解决这个问题的最简单、最有效的方法需要更多的步骤。

你能做的最好的事情就是将Student Object保存在ArrayList(或HashSet,实际上是任何Comparable Collection/Map)并使用#sort方法将其从下到上排序。 我可以(如果需要)为此提供一些代码。

关于java - java 以降序打印文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50701755/

相关文章:

java - 在运行时将方法名称转换为 bean 名称?

java - 右键 setIcon() 标记炸弹 - 扫雷

java - 语句执行查询异常

java - 如何将jar添加到java web netbeans项目目录

java - 使用 iText 将用户输入添加到 PDF 表单

使用 PKCS11 提供商 HSM 的 JAVA XML 签名

java - 使用 REST API 将数据库与其他 REST API 解耦

java - 如何在域 bean 之外实现 Jackson 自定义序列化?

java - 使用java获取系统信息(嵌入页面)

java - 使用 REST WS 处理附件