2014-12-13 50 views
1

在项目中,我使用了动态数组,但输出结果中的错误: 我的代码:问题与动态数组列表

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 2014-12-13 16:49:45

+0

它不是cleat,最新的问题。你能详细说明一下,以便用户可以在这里帮忙 – Shiv 2014-12-13 17:10:42

回答

0

看来你试图做的不是你想要的。

你的代码如下

save似乎6提供作品。在(isave)第一次迭代你得到a和b的(j6)迭代

然后你在numbers

插入6次结果的代码可以重写,以

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());