遍历两个不同对象,使用单个循环。

huangapple 未分类评论59阅读模式
英文:

foreach two different objects with a single cycle

问题

我有两个不同的对象但当我使用单个for循环时它们都有共同的对象
因为我只想用foreach做为什么在语法foreach中给我错误

ListResponse rp = sctService.search(usercode, dateFrom, dateTo, amountFrom, amountTo, debit);
CancellableSearchResponse ca = sctService.searchCancellable(usercode, amountFrom, amountTo);

       
for (Bonifico b : rp.getBonifici(); ca.getBonifici()) {
}
英文:

I have two different objects, but when I do a single for loop they both have the common object.
Since I want to do the only foreach. Why do you give me error in the syntax foreach?

ListResponse rp = sctService.search(usercode, dateFrom, dateTo, amountFrom, amountTo, debit);
CancellableSearchResponse ca = sctService.searchCancellable(usercode, amountFrom, amountTo);

       
for (Bonifico b : rp.getBonifici();ca.getBonifici()) {
}

答案1

得分: 0

你不能在Java中使用一个foreach循环遍历两个列表如果你想要同时遍历它们你可以这样做

    int i = 0;
    List<Bonifico> rpBonifici = rp.getBonifici();
    List<Bonifico> caBonifici = ca.getBonifici();
    while (i < rpBonifici.size() || i < caBonifici.size()) {
        if (i < rpBonifici.size()) {
            rpBonifici.get(i);// 对其进行操作
        }
        if (i < caBonifici.size()) {
            caBonifici.get(i);// 对其进行操作
        }
        i++;
    }

如果你百分之百确定这两个列表的大小相同你可以在访问列表元素之前省略检查

    int i = 0;
    List<Bonifico> rpBonifici = rp.getBonifici();
    List<Bonifico> caBonifici = ca.getBonifici();
    while (i < rpBonifici.size() || i < caBonifici.size()) {
        rpBonifici.get(i);// 对其进行操作
        caBonifici.get(i);// 对其进行操作
        i++;
    }
英文:

You cannot loop two lists with one foreach in java. If you want to loop them together you can do:

int i = 0;
List&lt;Bonifico&gt; rpBonifici = rp.getBonifici();
List&lt;Bonifico&gt; caBonifici = ca.getBonifici();
while (i &lt; rpBonifici.size() || i &lt; caBonifici.size() {
    if (i &lt; rpBonifici.size()) {
        rpBonifici.get(i);// do something with it
    }
    if (i &lt; caBonifici.size()) {
        caBonifici.get(i);// do something with it
    }
    i++;
}

If you're 100% sure that the lists have the same size, you can take off the checks before accessing the elements of the list:

int i = 0;
List&lt;Bonifico&gt; rpBonifici = rp.getBonifici();
List&lt;Bonifico&gt; caBonifici = ca.getBonifici();
while (i &lt; rpBonifici.size() || i &lt; caBonifici.size() {
    rpBonifici.get(i);// do something with it
    caBonifici.get(i);// do something with it
    i++;
}

huangapple
  • 本文由 发表于 2020年4月8日 21:13:58
  • 转载请务必保留本文链接:https://java.coder-hub.com/61101579.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定