Java ArrayList是否只遍历前4个元素?
我对Java和编程都是新手,请原谅我的无知 我试图遍历两个ArrayList,scannedcriteria和scannedcandidates,这样scannedcandidates中的每个元素都将使用MeetCriteria方法调用scannedcriteria中的每个元素 出于某种原因,它只遍历scannedcriteria的前4个元素。当我添加一个for循环,在主for循环之前打印scannedcriteria中的每个元素时,它会打印所有元素。我用写入文件的方式再次测试了它,然后,它再次将它们全部写入。它在try块的开头也给出了正确的arraylist长度 因此,问题在于嵌套for循环的语法。但我也试过暂时把它们换掉,对循环进行增强…什么都不起作用 我觉得自己很愚蠢,我不知道自己做错了什么Java ArrayList是否只遍历前4个元素?,java,file,for-loop,arraylist,iteration,Java,File,For Loop,Arraylist,Iteration,我对Java和编程都是新手,请原谅我的无知 我试图遍历两个ArrayList,scannedcriteria和scannedcandidates,这样scannedcandidates中的每个元素都将使用MeetCriteria方法调用scannedcriteria中的每个元素 出于某种原因,它只遍历scannedcriteria的前4个元素。当我添加一个for循环,在主for循环之前打印scannedcriteria中的每个元素时,它会打印所有元素。我用写入文件的方式再次测试了它,然后,它再次
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();
}
}
唯一合乎逻辑的解释是引发了异常。是否可以尝试使用调试器或打印一些调试语句?最明显的期望是一个null候选,它会导致NPE被吞没……好吧,那些catch块只会捕获2种特定类型的表达式。您可能会抛出另一种异常(嗯……可能是NullPointerException),它必须被调用堆栈上更高的一些代码所吞并。尝试捕获IOException下面的一般异常。谢谢,我会尝试的!使用调试器逐步完成此操作。这是最好的办法。