내 로그인 기능의 배열에서의 두 번째 세 번째 자리 값을 매칭 오류?

아브릴 :

내가있는 JOptionPane를 사용하여 만의 ArrayList를 사용하여 입력, 그것의 기본 작업을 복용 레지스터 형태의 로그를 확인해야하는 가정 할당을 가지고 있지만 내가 여기에 붙어있어, "나는 배열 목록의 값과 일치하는 기능을했지만 그것은 "잘못된 출력을 표시합니다.

나는 다른 루프를 사용하여 입력 값에 대해 서로 다른 게재 위치를 사용하고 있지만 내가 원하는 결과를 얻을 수 didnt가 시도했습니다.

public class register {
    ArrayList regUser;

    register()
    {
        this.regUser=new ArrayList();
    }

     public void regUser(){
            String regName = JOptionPane.showInputDialog(null, "Enter User Name:");
            String regPass = JOptionPane.showInputDialog(null, "Enter User Password:");

            userData p = new userData(regName,regPass);

            regUser.add(p);
        }
public void login()
    {
        String name = JOptionPane.showInputDialog(null, "Enter User Name:");
        String password = JOptionPane.showInputDialog(null, "Enter User Password:");

        for(int i=0; i<regUser.size(); i++)
        {
            userData k = (userData)regUser.get(i);
            if(name.equals(k.name) && password.equals(k.password)){
                JOptionPane.showMessageDialog(null, "Welcome to Rent A Car\n All cars data here....");

            }
            JOptionPane.showMessageDialog(null, "Wrong login info please try again");

        }

내 로그인 방법 검사 로그인 사용자의 입력 값과 각 경우의 ArrayList 전체 만이 일절 전체 매칭없는 오류를 표시하도록 수락하고있다. 하지만 내 프로그램은 다음 값을 먼저 ArrayList에 값에 대한 미세하지만 나던 작품을 작동합니다.

칼 - 로버트 :
class UserData {
  private final String username;
  private final String password;

  UserData(String username, String password) {
    this.username = username;
    this.password = password;
  }

  public String getUsername() {
    return username;
  }

  public String getPassword() {
    return password;
  }
}

class Registration {
  private final List<UserData> userData = new ArrayList<>();

  public void regUser() {
    String regName = JOptionPane.showInputDialog(null, "Enter User Name:");
    String regPass = JOptionPane.showInputDialog(null, "Enter User Password:");
    userData.add(new UserData(regName, regPass));
  }

  public void login() {
    String name = JOptionPane.showInputDialog(null, "Enter User Name:");
    String password = JOptionPane.showInputDialog(null, "Enter User Password:");

    boolean isValidUser = userData.stream()
        .anyMatch(user -> user.getUsername().equals(name) && user.getPassword().equals(password));

    if (isValidUser) {
      JOptionPane.showMessageDialog(null, "Welcome to Rent A Car\n All cars data here....");
    } else {
      JOptionPane.showMessageDialog(null, "Wrong login info please try again");
    }
  }
}

추천

출처http://43.154.161.224:23101/article/api/json?id=362392&siteId=1