我试图在迭代 bean 列表时更新 bean 的属性(如果它满足条件)。为了提高性能,我使用 Lists.transform
private void populate(final WorkFlowDataBean workFlowDataBean, final List<ApplicationDataBean> items) {
Lists.transform(items, new Function<ApplicationDataBean, ApplicationDataBean>() {
@Override
public ApplicationDataBean apply(ApplicationDataBean input) {
if (String.valueOf(workFlowDataBean.getId().intValue()).equalsIgnoreCase(String.valueOf(input.getWorkflowId().intValue()))) {
input.setWorkflowName(workFlowDataBean.getName());
input.setWorkflowVersion(workFlowDataBean.getVersion());
logger.info("---finally----");
}
logger.info(String.valueOf(workFlowDataBean.getId().intValue()) + "===" + String.valueOf(input.getWorkflowId().intValue()));
return input;
}
});
}
我不能使用 foreach 循环,因为它会减慢我的应用程序的速度。
最佳答案
“我不能使用 foreach 循环,因为它会减慢我的应用程序”在这里是错误的。尝试使用 Lists.transform 根本不会帮助你,因为 A)它没有做你似乎认为它能做的事情,B)这不是做你想做的事情的正确方法do(for-each 循环是),并且 C)您必须迭代 Lists.transform
返回的 List
,这不会比 for-each 更快环形。看来您可能认为它更快,因为您的代码实际上没有做任何事情。
如果您确实想让速度更快,您可能需要考虑并行化操作。
关于java - 如何在迭代时更新bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29277173/