For循环只检查最后一个值

Jam*_*rey -1 java login list

我觉得我错过了一些非常简单的东西,但我似乎找不到多少帮助.所以我在mem SQL数据库中使用vaadin和h2设计登录.有一种方法可以从列表中的数据库中返回值.麻烦的是我遇到了以下方法的问题.这意味着遍历列表中的每个条目,如果找到匹配的用户名/密码,则返回true.如果没有返回假.....

public boolean checkUserInDatabase(String username, String email) {
    boolean result = false;
    List<User> localArray = getUserList();

    System.out.println("List retrieved...Checking user in database"+ 
localArray);
    for (User u : localArray ) {
        if (u.getUsername().equals(username)) {
            result = true;
        }
        else {

            result = false;
        }
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我知道在这一点上我只是检查用户名,但是当我将用户添加到数据库时,它仍然只会检查该数据库中的最后一个用户....想法?

Mur*_*göz 7

您正在检查每个值,但是您从最后一个值中检索它.你基本上需要一个你已经拥有的退出条件.将您的代码更改为此

public boolean checkUserInDatabase(String username, String email) {
    List<User> localArray = getUserList();
    for (User u: localArray) {
        if (u.getUsername().equals(username)) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)