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

Java 如何将用户输入添加到ArrayList?,java,swing,user-interface,arraylist,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

我有以下代码:

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),当有人想要创建一个新的用户/密码时,将其添加到其中。但是,我得到一个错误,说“类型字符串的add(String)方法未定义。”

我该如何修复和制作,以便随着新用户的增加,阵列列表的大小可以增加

public ArrayList[] username = new ArrayList[1];
创建
ArrayList
的数组。您需要的是字符串的数组列表

public ArrayList<String> usernames = new ArrayList<String>();
创建
ArrayList
的数组。您需要的是字符串的数组列表

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

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

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

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

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);
    }
}
公共类用户名密码
{
私有映射映射=新的HashMap();
公共无效保存(字符串用户名、字符串密码){
字符串uname=userField.getText();
字符串pword=passField.getText();
地图放置(unmae,pword);
}
}

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

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

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

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);
    }
}
公共类用户名密码
{
私有映射映射=新的HashMap();
公共无效保存(字符串用户名、字符串密码){
字符串uname=userField.getText();
字符串pword=passField.getText();
地图放置(unmae,pword);
}
}

希望您使用的是与泛型兼容的java版本(1.5或更高版本)。您应该像Steve所说的那样,以字符串形式给出类型参数

您还可以创建一个用户类

public class User{
 String uname;
 String pwd;
 public User(u,p){
   uname=u;
   pwd=p; 
 }
}
并在主类中创建这些用户对象的ArrayList

ArrayList<User> list=new ArrayList<>();

希望您使用的是与泛型(1.5或更高版本)兼容的java版本。您应该像Steve所说的那样将类型参数设置为String

您还可以创建一个用户类

public class User{
 String uname;
 String pwd;
 public User(u,p){
   uname=u;
   pwd=p; 
 }
}
并在主类中创建这些用户对象的ArrayList

ArrayList<User> list=new ArrayList<>();

您可能正在使用更高版本的jdk,这导致了一个问题泛型可能是这里的问题。在添加之前总是指定对象的类型是正确的方法,顺便说一句,arraylist是动态的,不需要在构造函数中指定大小。我想你误解了arraylist的实际含义,看看你可能使用的是更高版本的jdk,这会导致问题泛型可能是这里的问题。添加前始终指定对象的类型是正确的方法,顺便说一句,arraylist是动态的,无需在构造函数中指定大小。如果您误解了arraylist的实际含义,请查看