将集合集合添加到ArrayList

时间:2018-02-27 04:58:05

标签: java arraylist collections hashmap

我试图创建一个带有参数名称,用户名,密码和电子邮件的User类的程序来创建包含此信息的HashMap。密钥将是User的名称,值将是包含有关用户信息的ArrayList(用户名,密码,电子邮件)。这个类应该提供一种创建新用户的方法,可以从PasswordDB类中使用,该类通过调用此方法创建用户数组及其信息。

这是User类的代码:

import java.util.HashMap;
import java.util.ArrayList;

public class User
{
    private String name;
    private String username;
    private String password;
    private String email;    
    private ArrayList<String> arr = new ArrayList<String>();
    private HashMap<String,ArrayList<String>> userInfo = new HashMap<String,ArrayList<String>>();

public User(String name, String username, String password, String email)
{
    this.name=name;
    this.username=username;
    this.password=password;
    this.email=email;
}

    public HashMap<String, ArrayList<String>> addUser()
{        
    arr.add(username);
    arr.add(password);
    arr.add(email);
    userInfo.put(name, arr);
    return userInfo;
    }
}

对于PasswordDB类:

import java.util.ArrayList;
import java.util.HashMap;

public class PasswordDB
{
    private ArrayList<User> database;
    private User newUser;

public PasswordDB()
{
    ArrayList<User> database = new ArrayList<User>();
}

public void newUser(String name ,String username ,String password ,String email)
{
    User newUser = new User(name, username, password, email);
    database.add(newUser.addUser());
    }
}

我在PasswordDB类中收到以下错误: error

我做错了什么?我怎样才能做到这一点?感谢。

3 个答案:

答案 0 :(得分:0)

  

您正尝试在vue.config.js中添加HashMap

尝试以下

ArrayList

答案 1 :(得分:0)

更改您的PasswordDB类:

John Adams
George Washington
Abraham Lincoln 
names[ABRAHAM] = Abraham Lincoln 
names[GEORGE] = George Washington

答案 2 :(得分:0)

您可以大量简化此程序。用户不需要知道任何其他用户的任何信息,因此User类中不应包含任何列表或数据库。

拥有一个User类,其中包含名称,用户名,密码,电子邮件等属性。这只是关于用户的数据。

然后使用您的hashmap创建PasswordDB类并将用户名映射到用户,您不需要所有这些额外列表。

class User {
    private String name;
    private String username;
    // ..

    public User(String name, String username, ...) {
        this.name = name;
        this.username = username;
        // ...
    }

    public String getName() { return name; }
    // .. more getters
}

public class PasswordDB {
    private HashMap<String,User> userInfo = new HashMap<String,User>();

    public void addUser(User newUser) {
        userInfo.put(newUser.getUsername(), newUser);
    }

    // maybe you need to get a user by username
    public User getUser(String username) {
        return userInfo.get(username);
    }
}