[英]Compare a Dynamic ArrayList with ArrayList! and remove the elements which are not present in Dynamic array
我有两个ArrayLists
, contactModels
和list
。
contactModels
是一个动态数组列表,我需要比较两个列表并删除list
中没有在contactModels
(DynamicArrayList)中存在的元素。
我尝试了嵌套循环,这是:
for (int i = 0; i < list.size(); i++)
{
if(!contactModels.get(i).getEmpID().equals(list.get(i).getEmpID()))
{
databaseadapter.removeContact(contactModels.get(i));
}
}
但是我做不到。
您不是要测试contactModels
的项目是否不在list
。 相反,您正在测试contactModels
存在的索引项是否与list
相同索引的项具有不同的ID。
仅当两个集合都根据ID进行排序并且contactModels的条目至少与list一样多时,这才起作用。
是这样吗? 否则,这可能是您的问题。
如果您的收藏hashcode
的项目具有equals
且正确实现的hashcode
,并且如果它们的ID相等,则它们相等,则可以使用类似的方法
for (<TypeOfYourItems> item : list)
{
if(!contactModels.contains(item))
{
databaseadapter.removeContact(item);
}
}
@Praneeth:Java提供了API。 这样就可以使用它了。 “list.removeAll(contactModels);”
如果contactModel具有非原始元素,则可以覆盖equals和哈希码以告诉您的对象将在什么基础上相等。
现在,您的列表将仅包含联系人模型中不存在的唯一元素。
因此,现在您不需要其他方法也可以将其删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.