Avoiding overwriting objects in ArrayList

arraylist, java

Solution

If I understood right you're adding new users this way:

ValidateUser newUser = new ValidateUser();
    newUser.setUser("administrator");
    newUser.setPass("asdf123");
    newUser.setBalance(0.8);
    newUser.setType("admin");
    personer.add(newUser);

    newUser.setUser("different admin");
    personer.add(newUser);

however this way the object points to the same reference, thus you must do the following to instantiate a new object:

 newUser = new ValidateUser();
 newUser.setUser("foo");
 personer.add(newUser);

Problem

Stackers. I've been searching the site for my question, but didn't find what I was looking for. I'm stuck with this code: ``` public class Users{ ArrayList<ValidateUser> personer = new ArrayList<ValidateUser>(); ValidateUser newUser = new ValidateUser(); newUser.setUser("administrator"); newUser.setPass("asdf123"); newUser.setBalance(0.8); newUser.setType("admin"); personer.add(newUser); ``` Got a nice array-list going on, but if i add more "newUsers" to the ArrayList, they seem to overwrite each other. I don't want to make a newUser1, newUser2 object, since later in my program, I have to be able to add new users, directly from the program. How to achieve this? ValidateUser: ``` public class ValidateUser { private String username; private String password; private double balance; private String role; public void setUser(String user) { username = user; } public void setPass(String pass) { password = pass; } public void setBalance(double rating) { balance = rating; } public void setType(String type) { role = type; } public String getUsername() { return username; } public String getPassword() { return password; } public double getBalance() { return balance; } public String getRole() { return role; } ``` }

Original source