2016-12-12 18 views
-3

私は2人のarraylistを持っています。最初の人は300人のエリア人口を含み、もう1人はその300人のエリアの採用率を含んでいます。 各地域の新しい人口を計算したいと思います。しかし、ネストされたforループ計算を行った後。 arraylistのサイズは90000に変更されました。なぜそれが起こるのですか?私は何を間違えたの?入れ子のforループの後のJava Arraylistサイズ

private void calArray(){ 
    int k; 
    double n,v; 
    int result; 
    int popSize = populArrayList.size(); 
    int adoptSize = adoptArrayList.size(); 
    for (int i = 0; i < popSize; i++){ 

     k = populArrayList.get(i); 

     for(int j = 0; j < adoptSize; j++){ 


      n = adoptArrayList.get(j); 

      v = k + (k * n); 

      pv1.add(Math.floor(v)); 
      System.out.println(pv1.size()); 
     } 
    } 

} 
+0

ループ内にループがあり、その内部のコレクションに追加し続けると、なぜリストが大きくなるのか不思議です。 – John3136

+0

申し訳ありません。私はそれをしていない場合、どのように結果を計算することができますか?ちょうど2ループでそれを作る? – kings077712

+0

@ kings077712あなたは何を達成したいですか? –

答えて

2

2つのリストのサイズが同じであるためです。 forループは次のように1つのforループで置き換えることができます。

for (int i = 0; i < populArrayList.size(); i++) { 

     k = populArrayList.get(i); 
     n = adoptArrayList.get(i); 

     v = k + (k * n); 

     pv1.add(Math.floor(v)); 

    } 
関連する問題