java - java 迭代器嵌套循环

标签 java

我有一个问题:有没有办法将迭代器直接递增到嵌套循环中? 示例

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

最佳答案

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

Iterator iterator = budgets.iterator();

并在代码的其余部分中使用它。

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

关于java - java 迭代器嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753653/

相关文章:

java - BlueJ 库有错误

java - 堆叠瓷砖(硬算法)

java - GUI 线程作业不是从可调用对象调用的

java - 垂直拖放到 RecyclerView 上后如何保留 firestore 中的项目位置

java - 另一个类中的 Action 监听器 - java

Java 平台 - 目前有哪些可用?

java - 干扰者 : setting EventHandler order

java - 如何在代理后面安装 Eclipse Neon

java - Hystrix仪表板

java - 将背景图像添加到面板