我使用此代码检查对象是否已在列表中

myClientList.contains(client);


我想在检查客户端是否存在于列表中时排除某些属性,例如adressage ...,而只需检查firstNamelastName和年龄。使用myClientList.contains时是否有其他选择,还是我应该编写自己的函数来实现?

最佳答案

@El Sam的回答是可以的,但它对真实单词不利,因为可能会有两个人具有相同的FirstName,LastName和Age,因此使用equals / hashcode并不是一个好的选择。

对于你的情况。最好编写自己的函数。只需编写一个循环并检查条件即可。

如果您使用的是Java 8,则可以使用Lambda表达式。

    myClientList.stream().anyMatch( r ->

        r.getFirstName().equals(client.getFirstName()) &&
        r.getLastName().equals(client.getLastName()) &&
        r.getAge() == client.getAge()
    );

关于java - 在列表中搜索对象时排除一些属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40183355/

10-14 12:24