【问题标题】:Loop for comparing all the objects of two lists循环比较两个列表的所有对象
【发布时间】:2012-08-28 02:40:05
【问题描述】:

我收到两个对象的列表,我应该比较所有对象...

为此,我一直在使用下一个循环:

        for (int i=0;it2.hasNext();i++ ) {
           objetoDb4o=it2.next();
           tratdb4o=(Tratam)objetoDb4o;
             for (int j=0;it.hasNext();j++ ) {
                    objetoJson = it.next();
                    tratJson = (Tratam)objetoJson;

            }
        }

it 和 it2 是迭代器.. size 的值是正确的(4 和 4)

但是循环不起作用..第一个for只迭代一次,第二个for迭代3次。

我找不到错误!你能帮帮我吗??

【问题讨论】:

    标签: java android json db4o


    【解决方案1】:

    您需要在进入内循环之前重置迭代器it,否则在外循环的第一次迭代期间您将只通过第二个列表一次;剩余的迭代将在it.hasNext() 处停止,完全跳过内部循环。

    【讨论】:

    • 而且.. 我怎样才能重置迭代器?不要错过他的价值观?
    • @HéctorOrtiz 重置我的意思是再次从您最初获得迭代器的同一个集合中获取迭代器。例如,如果您通过在列表上调用 iterator() 方法获得它,则通过在循环内再次调用 myList.iterator() 重新分配 it。最好的办法是在循环内声明it。这样,每次迭代都会进行初始化。
    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多