Java for循环忽略了ArrayList数据集中的几个索引

Java for循环忽略了ArrayList数据集中的几个索引,java,csv,arraylist,Java,Csv,Arraylist,在下面的代码片段中,我试图将stocks2ArrayList的内容写入stock\u train.csv文件。我使用了一个for循环,该循环应该遍历stocks2ArrayList的每个元素(调试器指示stocks2ArrayList的大小为2955) 但是,我正在跟踪使用变量r实际写入文件的数据行数。在for循环的运行时结束时,r的值只有390。我已经彻底地检查了这段代码,并且正在努力找出为什么我80%以上的数据没有分配到文件中的问题。(我的stock_train.csv文件仅显示390行数据

在下面的代码片段中,我试图将
stocks2
ArrayList的内容写入
stock\u train.csv
文件。我使用了一个for循环,该循环应该遍历
stocks2
ArrayList的每个元素(调试器指示
stocks2
ArrayList的大小为2955)

但是,我正在跟踪使用变量
r
实际写入文件的数据行数。在for循环的运行时结束时,
r
的值只有390。我已经彻底地检查了这段代码,并且正在努力找出为什么我80%以上的数据没有分配到文件中的问题。(我的
stock_train.csv
文件仅显示390行数据,而不是2955行)。是否有任何内存分配或语法问题阻止此for循环将所有
stock2
的数据写入csv文件?提前感谢您抽出时间

    CSVWriter cd = new CSVWriter(new FileWriter("src/in/stock_train.csv"), ',', CSVWriter.NO_QUOTE_CHARACTER);
    int r=0;
    int dd=0; // Tracker variables

    for(int g=0; g<stocks2.size(); g++) {
        Stock q = stocks2.get(g); // stocks2: size = 2955
        String[] temp2 = new String[4];
        if(q.getTimestamp().startsWith("a")) {
            dd++; // dd: 1
            break; // This code is included to neglect any data whose timestamp begins with 'a'. As evidenced by the value of 'dd', it only happens once.
        }

        temp2[0] = q.getTimestamp();
        temp2[1] = Double.toString(q.getPrice());
        temp2[2] = Double.toString(q.getVWAP(pv,v));
        temp2[3] = Integer.toString(q.getStatus()); // Data I want allocated to the "stocks_train.csv" file
        r++; // r: 390

        System.out.println(g + " " + temp2);
        cd.writeNext(temp2);
    }

    cd.close();

    /* Comments depict values of variables after the for-loops run-time based on debugger information */
CSVWriter cd=new CSVWriter(新文件写入程序(“src/in/stock\u train.csv”),,,CSVWriter.NO\u QUOTE\u字符);
int r=0;
int dd=0;//跟踪变量

对于(int g=0;g,如果相应的
时间戳
“a”
开头,您的评论建议您要跳过一个条目。您实际上使用了
break;
关键字,该关键字将终止循环。这也解释了
dd
的值恰好为
1
的原因


您需要的是一个
继续;
而不是
中断;
。这样做的效果是,程序将继续执行循环的下一次迭代。

如果相应的
时间戳
“a”开头,您的注释建议您跳过一个条目
。实际上,您使用了
break;
关键字,该关键字终止循环。这也解释了为什么
dd
的值正好是
1


你想要的是一个
继续;
而不是
中断;
。这会使程序在循环的下一次迭代中继续执行。

@Turing85:我相信你已经做到了。他需要的是
继续
,而不是
中断
。回答这个问题,我会投赞成票!@Turing85:我相信你是的他需要
继续
,而不是
中断
。回答这个问题,我会投票的!太棒了!谢谢!谢谢