我有两个ArrayLists:A和B两个ArrayLists都有一堆对象 存储在里面。 A超过B.我试图存储对象 在A中但不在B中的新ArrayList中称为C.每个对象 有几个数据成员,但我只比较其中两个 - "名称"和 "中文别名"
boolean found;
for(int i = 0; i < a.size(); i++) { found = false; for(int j = 0; j < b.size(); j++) { if (A.get(i).getName().equals(B.get(j).getName()) && A.get(i).getOtherName().equals(B.get(j).getOtherName())) { found = true; } } if (found = true) { C.add(A.get(i)); } }
问题是ArrayList&#39; c&#39;与所有对象一起存储 来自a,而不仅仅是那些在&#39; a&#39;但不是在&#39; b&#39;。 我做错了什么?
答案 0 :(得分:0)
我可以看到一个简单的错误:
这一行:
if (found = true)
{
C.add(A.get(i));
}
需要:
if (found != true)
{
C.add(A.get(i));
}
您需要使用not equals(&#34;!=&#34;)符号将found的值与true值进行比较。通过使用found = true。每次执行if语句时都会将find设置为true,而不是比较值。
该行也可以写成(它们的意思相同):
if (!found)
{
C.add(A.get(i));
}