java - java中的arraylist对数据进行排序

标签 java arraylist

所以我在让这项工作适合我时遇到了问题。这段代码需要做的是有 3 个不同的(字符串)字段,然后将它们按字母顺序排序,我之前已经得到过帮助,但它不会在我的 netbeans 上运行。我目前也了解所有更新。

这是我到目前为止的代码

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;

public class test {
private Scanner scan = new Scanner(System.in);
private List<LayoutOfScientist> scientistsNames = new ArrayList<LayoutOfScientist>();
private String name, field, idea;
private boolean continueLoop = true;
private int countTo3 = 0;

private void run() {
    while(countTo3<3&&continueLoop) {
        if(countTo3>0) {
            System.out.println("Would you like to add another scientist? (Y/N)");
        }

        if(countTo3 == 0 || scan.nextLine().equalsIgnoreCase("y")) {
            System.out.println("Please enter the scientist's name:");
            name = scan.nextLine();
            System.out.println("Please enter the scientist's field:");
            field = scan.nextLine();
            System.out.println("Please enter the scientist's idea:");
            idea = scan.nextLine();
            scientistsNames.add(new LayoutOfScientist(name, field, idea));
        } else {
            continueLoop = false;
        }
        countTo3++;
    }

    scientistsNames.sort(Comparator.comparing(LayoutOfScientist::getScientistName));
    for(LayoutOfScientist lOS : scientistsNames) {
        System.out.println(lOS.getScientistName() + ", " + lOS.getScientistField() + ", " + lOS.getScientistIdea());
    }
}

private class LayoutOfScientist {
    private String scientistName, scientistField, scientistIdea;

    private LayoutOfScientist(String scientistName, String scientistField, String scientistIdea) {
        this.scientistName = scientistName;
        this.scientistField = scientistField;
        this.scientistIdea = scientistIdea;
    }

    public String getScientistName() {
        return scientistName;
    }

    public String getScientistField() {
        return scientistField;
    }

    public String getScientistIdea() {
        return scientistIdea;
    }
}

public static void main(String[] args) {
    new Test().run();
}
}

最佳答案

您的类名称是 test (小写 t),在您的 main 方法中,您正在调用 Test().run()。 您需要将您的类重命名为 Test,这应该可以工作。或者,如果您的文件是测试文件,则需要将 Test().run() 更改为 test().run() 而不是 public class test公共(public)类测试。然而,命名 ClassLikeThis 是一种很好的编程习惯。

如果您的错误完全是其他问题,请告诉我们错误是什么。

关于java - java中的arraylist对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35442735/

相关文章:

java - RXJava。可观察的连续人口

java - 如何在垂直回收 View 上添加水平滚动?

java - Java 标识符中的 "connecting characters"是什么?

java.lang.UnsupportedOperationException : This feature is available only when the element type is implementing RealmModel

java - 是否可以将 ArrayList 除以 double 并创建一个新列表?

Java ArrayList 序列化问题

java - 请求中的西里尔字母

java - 抽象类如何返回子类对象的ArrayList?

java - 将项目添加到已在 Activity 之间传递的 ArrayList<String>

java - 如何在 Android 中使用 Java 从服务数据中提取的字符串中删除双引号?