首页 > 解决方案 > 用一个循环 foreach 两个不同的对象

问题描述

我有两个不同的对象,但是当我执行一个 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()) {
}

标签: javaforeach

解决方案


您不能在 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);// do something with it
    }
    if (i < caBonifici.size()) {
        caBonifici.get(i);// do something with it
    }
    i++;
}

如果您 100% 确定列表具有相同的大小,则可以在访问列表元素之前取消检查:

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

推荐阅读