-3

I'm trying to make a system where first the system check if the details of the manager is already registered in the system. If yes then it opens a menu for them, if not it asks them to try again. Now, I'm checking if the details that the manager entered are already in the system by using arraylist.contains() but it always gives me false even if the details are the same. What could be wrong with my code?

Here is my code with the classes I'm using:

this is my main : public class Main {

public static void main(String[] args) {
    Manager manager = null;
    String name;
    String location = null;
    String password;
    String familyName;
    Scanner input = new Scanner(System.in); 
    String id = null;
    DataBase dataBase = new DataBase();
    System.out.println("Welcome to Deliveries for you");
    System.out.println("PLease sing up the mnagaers: ");
    for (int i = 0; i < 3; i++) {

        // SignUp.addAdminToSystem(manager); DataBase.addManager(manager);
        // System.out.println(manager);
        System.out.println("Enter manager " + (i + 1) + " :");
        System.out.println("Enter manager name: ");
        name = input.next();
        System.out.println("Enter manager family name: ");
        familyName = input.next();
        System.out.println("Enter manager location: ");
        location = input.next();
        System.out.println("Enter manager password: ");
        password = input.next();
        manager = new Manager(name, familyName, password, location);
        dataBase.addManager(manager);
    }
    System.out.println("Enter admin: ");
    System.out.println("Enter name:");
    name = input.next();
    System.out.println("Enter family name");
    familyName = input.next();
    System.out.println("Enter password");
    password = input.next();
    System.out.println("Enter location");
    location = input.next();

    Manager m1 = new Manager(name, familyName, password, location);

    if (m1.equals(manager)) {
        System.out.println("m1 is in the array list");
    } else
        System.out.println("its not in the array list");

    input.close();
}

}

my dataBase class :

     public class DataBase {
    public static ArrayList<Manager> admin;

         public DataBase() {
        admin = new ArrayList<Manager>();

    }
       public void addManager(Manager manager) {
        admin.add(manager);
        Iterator it = admin.iterator();
        while (it.hasNext()) {
            it.next();
        }
        System.out.println(admin);
    }
}

my manager class I tried overriding equals and with/out using hashCode but both didn't work:

    public class Manager {
    private String firstName;
    private String lastName;
    private String password;
    private Members[] member;
    private String location;

public Manager(String firstName, String lastName, String password, String location) {
        super();
        this.firstName = firstName;
        this.lastName = lastName;
        this.password = password;
        this.member = new Members[0];
        this.location = location;
        admins = new ArrayList<Manager>();

    }
//and all the getters/setters
}
Siddhant
  • 626
  • 1
  • 7
  • 20
kitsune
  • 23
  • 6

1 Answers1

1

Use:

@Override public boolean equals(Object obj) { ... }

And make your comparisons within the braces.

jp1
  • 34
  • 3