我已经创建了一个拥有由用户创建的“账户”的ArrayList。我现在正在尝试编写一个“登录”函数,它循环访问ArrayList,并根据帐户ArrayList中已有的帐户检查用户输入。这是我的循环;ArrayList的字符串比较
for(UserInfo createdUser : auctionAccounts){
if(enteredUser.equals(createdUser.userName) && enteredPass.equals(createdUser.passWord)){
System.out.println("Welcome: " +createdUser.userName);
returnToMenu();
}else{
System.out.println("Username or Password is wrong!");
loginAccount(aI);
}
}
如果在ArrayList中只有一个帐户,这种方法绝对没问题。但是,如果列表中有多个帐户,我只能登录到第一个帐户,而之后没有帐户。
我还试图使用ArrayList.contains()方法,而不是.equals(),然而,这产生相同的结果。
编辑:我想补充,我这是怎么创建帐户;
UserInfo createdUser = new UserInfo();
System.out.println("---- Enter a username ----");
createdUser.setUsername(scanner.next());
System.out.println("---- Enter a password ----");
createdUser.setPass(scanner.next());
this.aI.createAccount(createdUser);
accountHandler(aI);