2014-12-13 5 views
1

В моем проекте я использовал динамический массив, но выходные результаты в ошибке: мой код:Проблема с динамическим ArrayList

for (int i = 0; i < save; i++) { 
    a[i] = (double) db.get_a("loc", i); 
    b[i] = (double) db.get_b("loc", i); 
    for (int j = 0; j < 6; j++) { 
     numbers.add(a[i] + b[i]); 
    } 
    Log.i("LOG", "Array Index #" + i + " = " + numbers.get(i)); 
} 
Log.i("LOG", "Array size #" + numbers.size()); 

в моем LogCat:

11-23 15:35:07.443: I/LOG(1880): Array Index #0 = 7.0 
11-23 15:35:07.473: I/LOG(1880): Array Index #1 = 7.0 
11-23 15:35:07.535: I/LOG(1880): Array Index #2 = 7.0 
11-23 15:35:07.583: I/LOG(1880): Array Index #3 = 7.0 
11-23 15:35:07.693: I/LOG(1880): Array Index #4 = 7.0 
11-23 15:35:07.763: I/LOG(1880): Array Index #5 = 7.0 
11-23 15:35:07.774: I/LOG(1880): Array size #36 
+1

Как реализованы db.get_a и db.get_b? – SMA

+0

Его не чехол, в чем проблема. Можете ли вы рассказать, чтобы пользователи могли помочь здесь – Shiv

ответ

0

кажется, что вы попробуйте сделать не то, что вы хотите.

код вы предоставили работает следующим образом

save, кажется 6. На первой итерации (i, save) вы получите и б

Тогда в (j, 6) итерации вы вставите 6 раз результат в numbers

Код можно переписать в

for (int i = 0; i < save; i++) { 
    a[i] = (double) db.get_a("loc", i); 
    b[i] = (double) db.get_b("loc", i); 
    double sum = a[i] + b[i]; 
    for (int j = 0; j < 6; j++) { 
     numbers.add(sum); // Inserting the same value 6 times 
     int cal_index = i * 6 + j; 
     // Printing all the ArrayList positions 
     Log.i("LOG", "* Array Index #" + cal_index + " = " + numbers.get(cal_index)); 
    } 
    // printing the first 6 positions 
    Log.i("LOG", "Array Index #" + i + " = " + numbers.get(i)); 
} 
Log.i("LOG", "Array size #" + numbers.size()); 
Смежные вопросы