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);
}