1

我有一个问题:有一种方法可以将迭代器直接递增到嵌套循环中吗?例子

while(budgets.iterator().hasNext()){
    if(budgets.iterator().next().getTipoBudget()!="I"){
        if(budgets.size()<maxInviate){
            for(i=0; i<maxInviate ;i++){
                if(budgetArray[i]==0 && budgets.iterator().hasNext()){
                    budgetArray[i] = budgets.iterator().next().getBudgetField();

                }
            }
            i=0;
            Set budgetSet = new HashSet<Integer>(Arrays.asList(budgetArray));
            Integer min = Collections.min(budgetSet);
            valueAdw = valueAdw + min;
            for(i=0; i<maxInviate; i++){
                budgetArray[i] = budgetArray[i] - valueAdw;
            }
        }else{
            valueAdw = null;
            valueAdwEnd = null;
            campaigns.addLast(new Campaign(valueAdw, valueAdwEnd, (long) adwordsBudget.getZona().getAdwordsCode()));
        }
    }
}
4

1 回答 1

1

问题是每次都budgets.iterator()返回一个新的,因此将指针移动到您不再使用的位置。定义Iteratorbudgets.iterator().hasNext()Iterator

Iterator iterator = budgets.iterator();

并在其余代码中使用它。

@Sachin J 也是对的,你也必须在 else 块中编写 iterator.next() 。另外@Marko Topolnik 抱歉,我刚刚看到您的评论,我并没有试图窃取您的想法。

于 2012-05-25T11:48:13.393 回答