如何将用户输入添加到ArrayList?

时间:2014-08-09 05:07:35

标签: java swing user-interface arraylist

我有以下代码:

public ArrayList[] username = new ArrayList[1];
public ArrayList[] password = new ArrayList[1];

public void save(String username, String password){
    String uname = userField.getText();
    String pword = passField.getText();

    username.add(uname);
    password.add(pword);
}

我正在尝试制作ArrayList个用户名和密码(使用Window Builder),并在有人想要创建新用户/密码时添加它。但是我得到一个错误,说“对于String类型,方法add(String)是未定义的。”

如何修复以及如何修复,以便在添加新用户时数组列表的大小会增加?

3 个答案:

答案 0 :(得分:2)

public ArrayList[] username = new ArrayList[1];

创建一个ArrayList数组。你想要的是一个字符串的ArrayList。

public ArrayList<String> usernames = new ArrayList<String>();

优良作法是“编程到接口”,在这种情况下usernames是一个List,其实现恰好是一个ArrayList。

public List<String> usernames = new ArrayList<String>();

答案 1 :(得分:2)

为什么要在两个不同的列表中维护用户名和密码?

您的假设是基于匹配两个列表的索引,然后获取一个特定用户的用户名和密码。

你应该避免这样做。使用更合适的数据结构,如地图,它维护键和值之间的映射。

public class UsernamePassword
{

    private Map<String, String> map = new HashMap<String, String>();

    public void save(String username, String password){
        String uname = userField.getText();
        String pword = passField.getText();

        map.put(unmae, pword);
    }
}

答案 2 :(得分:0)

希望你使用与泛型(1.5或更高版本)兼容的java版本。你应该像String一样给出类型参数字符串。

您还可以创建用户类

public class User{
 String uname;
 String pwd;
 public User(u,p){
   uname=u;
   pwd=p; 
 }
}

并在主类

中创建这些用户对象的ArrayList
ArrayList<User> list=new ArrayList<>();

将这些用户对象与从字段中检索到的值添加到列表

list.add(new User(uname,pword))