簡體   English   中英

數組不斷將與列表循環相同的值添加到所有索引

[英]Array keeps adding to all indexes the same value from the list loop

我正在使用2個數組,一個是arrayWeight ,另一個是arrayId 。它們都通過List從我擁有的數據庫中接收值。

List<oldDetails> details = olddb.getDetails();
        for (oldDetails cn : details) { //Adding weights and id of all time to an array.
            double num = cn.getWeight();
            int id = cn.getId();
            Log.d("num", "equals: " + num);
            for (int i = 0; i < count; i++) {
                arrayWeight[i] = num;
                arrayId[i] = id;
            }
        }
Log.d("Array", "equals: " + Arrays.toString(arrayWeight));

在LogCat之后,for循環中我收到的每一步:

D/num: equals: 70.6
D/num: equals: 60.7
D/num: equals: 8000.0
D/num: equals: 80.6
D/Array: equals: [80.6, 80.6, 80.6, 80.6]

現在,我願意在我的陣列中實現此目標:

D/num: equals: 70.6
D/num: equals: 60.7
D/num: equals: 8000.0
D/num: equals: 80.6
D/Array: equals: [70.6, 60.6, 8000.0, 80.6]

如何解決數組僅從列表中接收一個值而不是全部接收的問題?

您的內部循環將每個值從detail復制到數組arrayWeigtharrayId中的每個值,因此在上一次迭代中它將替換每個值。 使用單個常規的for循環,而不是嵌套循環。 喜歡,

for (int i = 0; i < details.size(); i++) {
    OldDetails cn = details.get(i);
    double num = cn.getWeight();
    int id = cn.getId();
    Log.d("num", "equals: " + num);
    arrayWeight[i] = num;
    arrayId[i] = id; 
}

或者更短,

for (int i = 0; i < details.size(); i++) {
    OldDetails cn = details.get(i);
    arrayWeight[i] = cn.getWeight();
    arrayId[i] = cn.getId();
    Log.d("num", "equals: " + arrayWeight[i]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM