2016-08-04 3 views
0

私はこの問題に悩まされています。クラス名はPersonで、名前と年代は2つしかありません。私はその人の詳細をユーザ入力として保存し、ArrayListにオブジェクトとして保存していますが、ArrayListのオブジェクトプロパティをキーボードから別々の配列に移動する場合は、String配列と人のすべての年齢そのArrayListからのint配列。それを行う方法はありますか?
コード:ArrayListオブジェクトを別の配列に変換する

public class Person { 

    String name; 
    int age; 

} 

public class Main { 

    public static void main(String[] args) { 


     Scanner s = new Scanner(System.in); 
     ArrayList<Person> arr = new ArrayList<Person>(); 
     Person person = null; 



     for(int i=0;i<2;i++){ 
      person = new Person(); 
      System.out.println("Enter Person "+(i+1)+" Record"); 
      int age = 0; 
      System.out.print("Enter Name : "); 
      String str = s.nextLine(); 
      person.name = str; 
      System.out.print("Enter Age : "); 
      age = s.nextInt(); 
      s.nextLine(); 
      person.age = age; 
      arr.add(person); 
      person = null; 
      System.out.println("Record "+(i+1)+" Successful Fill"); 

     } 
      String[] stringarray = new String[arr.size()]; 
      int[] intarray = new int[arr.size()]; 

    } 

} 
+0

はい、方法があります: – csmckelvey

+0

どのようなロジックですか? – hamel123

答えて

0

あなたが読んですべての値が新しい関数を作成した後、人、オブジェクトとあなたのArrayListを保持し、配列を埋めるためにしたい場合は

0

これを実行する方法はたくさんあります。 。一つは

ArrayList<String> names = new ArrayList<>(); 
ArrayList<int> ages = new ArrayList<>(); 

for(int i = 0; i < 2; i++){ 
    // create person object 
    names.add(str); 
    ages.add(age); 
} 

年齢や名前の代わりにArrayListsを作成して、新しい値が中に引っ張られるたびに追加することですそして、彼らは絶対にArraysする必要があるならば、あなたが変換することができます:

String[] nameArray = names.toArray(new String[0]); 
String[] ageArray = ages.toArray(new int[0]); 
0

私はこれをやり遂げる方法を知りませんが、必要なときにいつでもそれを行う方法は、すべてのPersonオブジェクトをループして情報の2つの配列を作る方法です。

そう...

int[] ages = new int[arr.size()]; 
String[] names = new String[arr.size()]; 
for(int i = 0; i < arr.size(); i++){ 
    //assign attributes 
} 

は、再度

は、それを行うには良い方法があるかもしれません...あなたは、これらのアレイでやりたいが、これは、仕事をdefinitelますそれが、あまり効率的ではありません。あなたは配列にPersonオブジェクトを追加する場所


しかし、あなたのforループで は、右、あなただけの初めに宣言したArrayListに追加することができます。

"ArrayList"ではなく "List"にする必要がある場合は、 でリストをリストに変換できます。 Hereはその良い例です。

private void add2Arrays(List<Person> list) { 
    for(int i = 0; i < list.size(); i++) { 
    Person p = list.get(i); 
    stringarray[i] = p.getName(); 
    intarray[i] = p.getAge(); 
    } 
} 
関連する問題