我有一个包含内容列表的对象,另一个包含内容的对象没有列表,如下面的代码
List<LoginInformation> allUsersLoginInfo
LoginInformation loginInformation
现在我想比较这两个,看看loginInformation的元素是否存在于allUsersLoginInfo中
LoginInformation是一个模型类。
它有名字和卷号。
因此,allUserLoginInfo是一个列表,其中包含Name和Rollnumber的多个值。
现在,我想比较并查看loginInformation的任何值(即,Name或RollNumber的值)是否在allUserLoginInfo中呈现,然后给出我为true,否则为false,注意没有值相等。
提前致谢
答案 0 :(得分:0)
你可以这样做:
allUsersLoginInfo.contains(loginInformation);
但你需要在类 LoginInformation 中正确覆盖equals方法,否则,列表将永远不会找到该元素并返回false ...
答案 1 :(得分:0)
lUsersLoginInfo.contains(loginInformation)
可能是您正在寻找的东西 如果列表中有很多信息,我建议使用一组。但你最好不要在用户信息中保存密码......
答案 2 :(得分:0)
您可以使用Stream#anyMatch
完成手头的任务。
if(allUsersLoginInfo.stream().anyMatch(m -> m.getName().equals(loginInformation.getName())
|| m.getRollNumber() == loginInformation.getRollNumber())){
//exists
}else{
// does not exist
}
答案 3 :(得分:0)
您可以将Apache Commons用于1.8之前的java
此示例查找loginInformation的任何值(即Name或RollNumber的值)是否出现在allUserLoginInfo中:
LoginInformation res = CollectionUtils.find(allUsersLoginInfo, new Predicate<LoginInformation >() {
@Override
public boolean evaluate(LoginInformation o) {
return o.getName ().equals(yourloginInformation.getName()) || o.getRollnumber () == yourloginInformation.getRollnumber();
}
});
对于java 1.8,请使用Aominè回答