我使用此代码检查对象是否已在列表中
myClientList.contains(client);
我想在检查客户端是否存在于列表中时排除某些属性,例如
adress
,age
...,而只需检查firstName
,lastName
和年龄。使用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/