Java比较两个列表的对象值?

我有两个列表*ListA<MyData> listA = new ArrayList<MyData>()ListB<MyData>

listB = new ArrayList<MyData>()都包含 MyData 类型的对象,而 MyData* 包含这些变量。

MyData {

String name;

boolean check;

}

利斯塔和数组listB都包含MyData的对象,现在我要两个列表的对象值比较这里 ,以及 变量一样,如果

包含这些对象值

ListA = ["Ram",true],["Hariom",true],["Shiv",true];

和ListB也包含

ListB = ["Ram",true],["Hariom",true],["Shiv",true];

然后我必须比较列表并返回false,因为两个列表相同但是如果ListA包含

ListA = ["Ram",true],["Hariom",true],["Shiv",false];

和 包含

 ListB = ["Ram",true],["Hariom",true],["Shiv",true];

然后我必须比较列表并返回true,因为两个列表都不相同

反之亦然,因此任何列表值的任何细微变化都必须返回true。

回答:

我有上述问题的解决方案

public boolean compareLists(List<MyData> prevList, List<MyData> modelList) {

if (prevList.size() == modelList.size()) {

for (MyData modelListdata : modelList) {

for (MyData prevListdata : prevList) {

if (prevListdata.getName().equals(modelListdata.getName())

&& prevListdata.isCheck() != modelListdata.isCheck()) {

return true;

}

}

}

}

else{

return true;

}

return false;

}

我们该如何覆盖…想象一下,如果您有两个数组“ A”,真“ B”,真“ C”,真和“ A”,真“ B”,真“

D”,真。即使数组一具有C且数组二具有D,也没有任何检查可以捕获到该错误( 由@Patashu提及 )。.SO为此我做了以下更改。

public boolean compareLists(List<MyData> prevList, List<MyData> modelList) {

if (prevList!= null && modelList!=null && prevList.size() == modelList.size()) {

boolean indicator = false;

for (MyData modelListdata : modelList) {

for (MyData prevListdata : prevList) {

if (prevListdata.getName().equals(modelListdata.getName())

&& prevListdata.isCheck() != modelListdata.isCheck()) {

return true;

}

if (modelListdata.getName().equals(prevListdata.getName())) {

indicator = false;

break;

} else

indicator = true;

}

}

}

if (indicator)

return true;

}

}

else{

return true;

}

return false;

}

以上是 Java比较两个列表的对象值? 的全部内容, 来源链接: utcz.com/qa/410740.html

回到顶部