1

我有一个包含内容列表的对象,另一个包含内容的对象没有列表,如下面的代码

List<LoginInformation> allUsersLoginInfo
LoginInformation loginInformation

现在想比较这两个,看看allUsersLoginInfo中是否存在loginInformation的元素

LoginInformation 是一个模型类。

它有名称和卷号。

因此,allUserLoginInfo 是一个列表,其中包含 Name 和 Rollnumber 的多个值。

现在,我想比较一下 allUserLoginInfo 中是否存在 loginInformation 的任何值(即,Name 或 RollNumber 的值)然后给我 true else false 注意没有值是相等的。

提前致谢

4

4 回答 4

0

你可以这样做:

allUsersLoginInfo.contains(loginInformation);

但是您需要正确覆盖类LoginInformation中的 equals 方法,否则,列表将永远找不到元素并返回 false ...

于 2017-05-31T14:51:17.233 回答
0
lUsersLoginInfo.contains(loginInformation)

可能是您要查找的内容 如果列表中有很多信息,我建议您改用集合。但是您最好不要将密码保存在用户信息中...

于 2017-05-31T14:52:11.817 回答
0

你可以用它Stream#anyMatch来完成手头的任务。

if(allUsersLoginInfo.stream().anyMatch(m -> m.getName().equals(loginInformation.getName())
                   || m.getRollNumber() == loginInformation.getRollNumber())){
        //exists
}else{
      // does not exist
}
于 2017-05-31T15:02:40.673 回答
0

您可以 在 1.8 之前使用Apache Commons for java

此示例查找 allUserLoginInfo 中是否存在 loginInformation 的任何值(即 Name 或 RollNumber 的值):

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è 答案

于 2017-05-31T15:05:50.503 回答