Java中对象列表的相等条件

时间:2019-04-30 07:49:02

标签: java java-8

我正在寻找迭代列表的方法,并检查Java中对象列表的某些条件。

注意:我将其称为表是因为我们正在通过Java从数据库中获取记录并进行迭代以检查条件。

例如,列表包含以下记录以及以下代码,

Id     name
1      Tom
2      Jack
3      Tom

public class ListObjects {
     private boolean checkEqual(List<Client> clientList){
         for(Client clientName : clientList) {
             if(clientName.equals("Tom") && clientName.equals("Jack")){
                 System.out.println("Validation success");
             }
         }
     }
}

如何检查上述代码中Java对象列表的名称条件。

TIA。

1 个答案:

答案 0 :(得分:1)

您可以在对象内部进行

public class MyObject{
    //your classes code here

    public boolean equals(MyObject toCompare){
        return this.name.equals(toCompare.name);
    }
}

在其他班级,您需要检查这些条目:

if(object1.equals(object2)){
    //whatever you want to do if they are equal
}

编辑:

在示例代码中,您遍历列表中的所有客户端,并在每个客户端上检查他的名字是否为tom and jack。但这是没有道理的,因为客户不能同时使用tom AND jack。我想你想做的是:

public class ListObjects {
     private boolean checkEqual(List<Client> clientList){
         for(Client clientName : clientList) {
             if(clientName.name.equals("Tom") || clientName.name.equals("Jack")){
                 System.out.println("Validation success");
             }
         }
     }
}

此外,您需要执行clientName.name才能访问该客户端名称。 for循环中的clientName只是一个完整的客户端

另一个编辑:

如果您使用上面的equals方法,则可以

private boolean checkEqual(List<Client> clientList){
     return clientList.contains("Tom") || clientList.contains("Jack");
}

如果列表中有tom或jack,则为true