根据以下代码,我必须通过从其他对象获取值来设置一个列表中的对象的值。由于减少了进程,我在设置值后从第二个列表中删除每个对象。这样做,第二个列表将减少每个循环以及CPU进程。我的想法是对的吗?我会减少一些流程吗?
for(Product product : _session.getProducts()){
for(Product newProduct : _newSession.getProducts()){
if(product.getID() == newProduct.getID()){
product.setValue(newProduct.getValue());
_newSession.getProducts().remove(newProduct);
break;
}
}
}
答案 0 :(得分:0)
我认为您无法衡量实际节省的CPU流程。理论上可能会有一些节省,也许如果名单很大。你应该寻找替代解决方案。 一种是使用Set而不是list,正确实现equals和hashCode for Product类。 Set实现的搜索算法非常快:O(log n)。并且实现equals非常简单,因为你只有一个属性可以区分对象ID。