我是Java和编程的新手,所以请原谅我的无知。
我正在尝试迭代两个ArrayLists,scanningcriteria和scanningcandidates,这样scancandidates中的每个元素都会使用方法meetCriteria调用scanningcriteria中的每个元素。
出于某种原因,它只是迭代扫描标准的前4个元素。当我添加一个for循环,在主要for循环之前在scanscriteria中打印每个元素时,它会全部打印出来。我通过写入文件再次测试它,然后再次将它们全部写入。它也在try块的开头给出了正确的arraylist长度。
所以问题必须在嵌套for循环的语法中。但是我也试过把它们换掉,用于循环增强......没有用。
我觉得很蠢,我不知道我做错了什么......
void printResults(){
try {
FileOutputStream bw = new FileOutputStream("results4.txt");
for (ExamCriteria ex: scannedcriteria){
byte [] towrite = ex.getInfo().getBytes();
bw.write(towrite);
for (Candidate can: scannedcandidates){
String result = can.meetsCriteria(checktime, ex);
if (result != null){
towrite = (", " + result).getBytes();
bw.write(towrite);
}
if (scannedcandidates.indexOf(can) == (scannedcandidates.size() -1 )){
towrite = ( "\r\n").getBytes();
bw.write(towrite);
}
}
}
bw.close();
}
catch (FileNotFoundException e) {
System.out.println("FileNotFoundException");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}