-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の場合、単一のAccountオブジェクトを表すために文字列をArrayListに追加したくないため、デザインはオフになっています。これにはエラーが伴いますが、特に、順序が狂って物事を追加するリスクがあります。代わりに、現在配列リストに追加しようとしている値のフィールドを持つ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()、新しい値が追加されるインデックスを最初のパラメーターが受け入れる2番目のメソッドを使用します。

account.add(index,value);

ここで、は、ArrayListに格納されるindexインデックスを定義する整数です。value

オブジェクトの場合と同様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 の位置 account number に追加しています。

姓名、郵便番号などが入るアカウント オブジェクトを作成する必要があります。

次に、このアカウント オブジェクトを Arraylist に入れます。そうすれば、アカウント オブジェクトが取り込まれた Arraylist が作成されます。

于 2012-12-27T04:07:42.777 に答える