-3

我遇到了一个问题,我无法将值放入数组列表的某个位置。我有成功将字符串存储到变量中的用户输入,但我不知道如何将它们放入数组的特定单元格中。

代码:

 public void newAccount() {
     firstName = JOptionPane.showInputDialog("What's your first name?");
     nLastName = JOptionPane.showInputDialog("What's your last name?");
     nAddress = JOptionPane.showInputDialog("What's your current address?");
     nCity= JOptionPane.showInputDialog("What's your current city?");
     nState = JOptionPane.showInputDialog("What's your current State?");
     nZipCode = JOptionPane.showInputDialog("What's your current Zip Code?");
     account.add( accountNumber, firstName);
     account.add( accountNumber, nLastName);
     account.add( accountNumber, nAddress);
     account.add( accountNumber, nCity);
     account.add( accountNumber, nState);
     account.add(accountNumber, nZipCode); 
}
4

4 回答 4

1

您想使用 ArrayList 的以下add 方法,执行以下操作可以将条目放置在指定的索引处:

ArrayList al = new ArrayList();  
al.add(index, object);

还要注意,Java 中的索引是基于 0 的。

于 2012-12-27T03:59:38.273 回答
0

account变量的类型是什么?如果它是一个 ArrayList,那么您的设计就会关闭,因为您不想将字符串添加到 ArrayList 以表示单个 Account 对象。这充满了错误,其中最重要的是添加乱序的风险。相反,您应该创建一个 Account 类,其中包含您当前尝试添加到数组列表中的值的字段。

public class Account {
  private String firstName;
  private String lastName;
  // .... etc

  public Account(String firstName, String lastName, .... etc...) {
    this.firstName = firstName;
    this.lastName = lastName;
    // .... etc...

  }

然后,您可以创建一个 Account 对象,将上面的值传递到其构造函数中。

Account newAccount = new Account("John", "Smith", ..... etc...);

然后,您可以拥有一个 Account 对象的 ArrayList,或者更好地表示为ArrayList<Account>并将单个 Account 对象轻松添加到此列表中。

于 2012-12-27T03:54:52.937 回答
0

正如我假设您使用和 ArrayList... 使用第二种方法,add()其中第一个参数接受将添加新值的索引

account.add(index,value);

其中 isindex是一个整数,它将定义value将存储在 ArrayList 中的索引

可以value是一个对象,那么您可以创建一个类对象并将其保存到value 例如

List<AccountItem> = new ArrayList<AccountItem>();

class AccountItem(){
   public String firstname;
   public String lastname;
}

AccountItem ai = new AccountItem();
ai.firstname= "you";
ai.lastname = "me";

account.add(2,ai); //where i save the new object in index 2
于 2012-12-27T03:56:21.640 回答
0

如果变量 account 是一个 Arraylist,那么你使用它是错误的。您仅将 ZipCode 添加到位置帐号的数组列表中。

您应该创建一个帐户对象,其中包含名字和姓氏、邮政编码等。

然后把这个账户对象放到Arraylist中。这样,您将拥有一个填充了帐户对象的 Arraylist。

于 2012-12-27T04:07:42.777 回答