【发布时间】:2013-10-28 17:38:44
【问题描述】:
我有两个对象数组列表:modelList 包含 Model 对象,entityList 包含 Entity 对象。 Model 和 Entity 对象都有一个名为 id 的属性。
我的目标是遍历modelList 中的每个Model,如果entityList 中的Entity 具有相同的id 值,则调用方法merge()。
目前,我正在这样做:
for (Model model : modelList) {
for (Entity entity : entityList) {
if (model.getId().equals(entity.getId())) merge(entity, model);
}
}
这似乎不是很有效,尤其是对于大型数据集。实现预期结果的更好方法是什么?
提前致谢!
【问题讨论】:
-
正如 Rene 所回答的,散列通常比遍历列表更快。
-
list1.retainAll(List2) 应该为你做。
-
谢谢。在这种情况下,retainAll() 方法将不起作用,因为 Model 和 Entity 是两个不同的对象类。
标签: java loops arraylist match