【发布时间】:2019-06-24 07:40:44
【问题描述】:
我有两个 arraylist ,基于某些相等标准,我将值设置为一个列表, 下面是代码,如何避免嵌套for循环,如何使用map或任何其他方式优化操作,
ArrayList<TriggerTerm> triggerTerms = triggerDaoImpl.getTriggerTerm(.....);
ArrayList<Term> terms = baseDaoImpl.getTerm(.....);
for (TriggerTerm tt : triggerTerms) {
for (Term t : terms) {
if (tt.getCodeNumber().equals(t.getCodeNumber()) &&
tt.getTermNumber().equals(t.getTermNumber())) {
tt.setStartDate(t.getStartDate());
}
}
}
【问题讨论】:
-
您可以在
tt.setStartDate(t.getStartDate());之后放置一个break;,除非您特别想设置列表中最后一个匹配Term的开始日期。 -
Term和TriggerTerm类之间有什么关系? -
您似乎正在从数据库中获取这两个列表。您可以使用 JOIN 子句创建 SQL 视图,然后您将只有一个循环。
标签: java dictionary arraylist