Java ArrayList只迭代前4个元素?

时间:2014-10-14 02:02:01

标签: java file for-loop arraylist iteration

我是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();
    }       
    }

0 个答案:

没有答案