【问题标题】:foreach two different objects with a single cycle用一个循环 foreach 两个不同的对象
【发布时间】:2020-07-20 22:01:01
【问题描述】:

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

【问题讨论】:

  • 在 Java 中无法在两个不同的列表上进行 foreach
  • 还有其他方法吗?
  • 看我的回答,只有这些方法
  • 如果您的依赖项中有 GuavaApache Commons Collections 等库,请查看 my other comment。如果你没有这样的库,你可以自己实现类似的东西,如果你认为付出的努力是值得的。

标签: java foreach


【解决方案1】:

你不能在 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++;
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
相关资源
最近更新 更多