避免在ArrayList中覆盖对象 [英] Avoiding overwriting objects in ArrayList

查看:136
本文介绍了避免在ArrayList中覆盖对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

堆垛。我一直在网站上搜索我的问题,但没找到我要找的东西。我坚持使用这段代码:

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);

有一个很好的数组列表,但如果我向ArrayList添加更多newUsers,他们似乎互相覆盖。我不想创建一个newUser1,newUser2对象,因为稍后在我的程序中,我必须能够直接从程序中添加新用户。

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.

如何实现这个目标?

ValidateUser:

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;
}

}

推荐答案

如果我理解你正在以这种方式添加新用户:

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);

这篇关于避免在ArrayList中覆盖对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆