第一次来这里,所以我希望这是有道理的!
我有两个对象数组,分别是l1和l2,我想在这两个列表之间进行比较,并在l3中得到一个不匹配的值。用户类包含2个字符串:
userEnteredValue
valueReturnedFromDatabase
说,l1包含:Java,JSF,JAXR和foo l2包含:JSF,JAXR
我可以对匹配的值进行比较,但对于不匹配的值则不能。逻辑似乎有缺陷。有什么帮助吗?
对于匹配值:
for(User u1 : l1) {
for(User u2: l2) {
if(u1.getUserEnteredValue().equals(u2.getValueReturnedFromDatabase())) {
l3.add(u1);
}
}
但是,对于非匹配,当我说不等于时,我会得到所有值,而不仅仅是获得唯一值。关于Stackoverflow的几个类似的帖子建议在User类中实现equals和hashcode方法。这是必需的吗,因为我的arraylist大小不超过5到10。
您可以执行以下操作:
for(User u1 : l1) {
boolean unique = true;
for(User u2: l2) {
if(u1.getUserEnteredValue().equals(u2.getValueReturnedFromDatabase())) {
unique = false;
break;
}
}
if(unique){
l3.add(u1);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句