[英]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
復制到數組arrayWeigth
和arrayId
中的每個值,因此在上一次迭代中它將替換每個值。 使用單個常規的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.