【发布时间】:2015-03-23 09:53:01
【问题描述】:
基本上问题是转换以下代码的最佳方法是什么
for (Link updateLink : updateLinks) {
for (Link link : project.getLinks()) {
if(updateLink.equals(link)){
link.setName(updateLink.getName());
link.setLink(updateLink.getLink());
}
}
}
进入更实用的友好风格。我能想到的最好的办法是使用外部循环,并使用函数 find 替换第二次迭代和检查。
for (final Link updateLink : updateLinks) {
Link link = Iterables.find(project.getLinks(), new Predicate<Link>() {
@Override
public boolean apply(Link p) {
return p.equals(updateLink);
}
});
link.setName(updateLink.getName());
link.setLink(updateLink.getLink());
}
有没有可能写得更好?
【问题讨论】:
标签: java collections functional-programming guava