我正在尝试创建一个方法来确定ArrayList(a2)是否包含ArrayList(a1),假设两个列表都包含重复值(containsAll不会像ArrayList包含重复值那样工作,那么它将返回true 无论值的数量)
这就是我所拥有的:(我相信它会起作用但我不能在for循环中使用.remove)
public boolean isSubset(ArrayList a1, ArrayList a2) {
Integer a1Size= a1.size();
for (Integer integer2:a2){
for (Integer integer1: a1){
if (integer1==integer2){
a1.remove(integer1);
a2.remove(integer2);
if (a1Size==0){
return true;
}
}
}
}
return false;
}
谢谢您的帮助。
两个清单中的项目顺序是否重要?
a1Size的值仅计算一次(在循环之前),因此基于其值的逻辑是无意义的
要从arrayList中删除,请使用迭代器
你为什么不简单地使用removeAll?
您是否在询问是否包含相同数量的重复项? 也许一些示例数据会有所帮助。 例如:[狗,猫,猫,鸟]是包含[猫,狗]是假的但是包含[猫,猫,狗]是真的吗?
是的,