比较两个对象数组列表

第一次来这里,所以我希望这是有道理的!

我有两个对象数组,分别是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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章