Java 循环中有循环的愚蠢错误

Java 循环中有循环的愚蠢错误,java,Java,所以我有一个程序,我创建一个新的学生,给这个学生加分数,加上这个学生获得这些分数的班级的名字,然后把这个学生添加到我的学生列表中 由于有许多不同的班级,同一个学生往往上多个班级,并且在所有班级都有分数 但这将使我的计划仍然创造一个新的学生,即使它已经准备好了 下面是代码现在创建学生的方式: List<Student> students = new ArrayList<>(); for(Path adress:files){ Buf

所以我有一个程序,我创建一个新的学生,给这个学生加分数,加上这个学生获得这些分数的班级的名字,然后把这个学生添加到我的学生列表中

由于有许多不同的班级,同一个学生往往上多个班级,并且在所有班级都有分数

但这将使我的计划仍然创造一个新的学生,即使它已经准备好了

下面是代码现在创建学生的方式:

List<Student> students = new ArrayList<>();

        for(Path adress:files){
            BufferedReader textIn = new BufferedReader(new FileReader(adress.toString()));
            String line;
            while((line = textIn.readLine()) != null){
                String[] readContent = line.split(" ");
                System.out.println(students.size());
                for(int i = 0; i < students.size(); i++){
                    if(students.get(i).askName().equals(readContent[0])){
                        //something i do when Student exists
                    }else{
                        Student student = new Student(readContent[0],adress.toString());
                        for(int y = 1;y < readContent.length; y++){
                            student.addGrade(readContent[y]);
                        }
                        students.add(student);  
                    }
                }
            }
        }

类似的东西应该作为最内部的循环使用

boolean found = false;
for(int i = 0; i < students.size() && !found; i++){
    if(students.get(i).askName().equals(readContent[0])){
        //something i do when Student exists
        found = true;
    }
}
if(!found){
    Student student = new Student(readContent[0],adress.toString());
    for(int i = 1; i < readContent.length; i++){
        student.addGrade(readContent[i]);
    }
    students.add(student);  
}
boolean-found=false;
对于(int i=0;i
students.size()+1
应该是
students.size()
是的,这是复制粘贴错误。正如你所建议的那样。一开始我只是想把它做得更大些,但我觉得这是不可能的。你每个名字只想要一个学生,所以即使他们是不同的人,也不要有双重的名字?如果不是,我会用一个ID来识别他们。如果你想这样做,我会把列表改成HashMap。。。在HashMap中,您可以轻松查看元素是否已经在其中!这可能会有帮助:你能复制更多的代码吗?特别是
文件的声明
。增加了整个类@拉蒙,到时候也会调查的!
boolean found = false;
for(int i = 0; i < students.size() && !found; i++){
    if(students.get(i).askName().equals(readContent[0])){
        //something i do when Student exists
        found = true;
    }
}
if(!found){
    Student student = new Student(readContent[0],adress.toString());
    for(int i = 1; i < readContent.length; i++){
        student.addGrade(readContent[i]);
    }
    students.add(student);  
}