[英]Arraylist java always give me the last value
我整天都在解決這個問題。 我沒有問題地填充了arrayList,但是當我嘗試獲取該值時,我總是會獲取最后一個值。
private List<double[]> marker;
double[] m= new double[3];
double[] a= new double[3];
....
marker= new ArrayList<double[]>();
for (int i=0;i<150;i++){
int k = Math.abs(random.nextInt(10));
int r = Math.abs(random.nextInt(10));
int s = Math.abs(random.nextInt(10));
m[0]=i;
m[1]=46+(((double)k)*0.1)+(((double)r)*0.01)+(((double)s)*0.001);
m[2]=9+(((double)r)*0.1)+(((double)s)*0.01)+(((double)k)*0.001);
marker.add(m);
}
a=marker.get(5);
Log.i("Io","indice: "+a[0]+"lat: "+a[1]+"lon"+a[2]);
我總是得到我在arrayList中添加的最后一個“ double [3]”,為什么?
您需要為每個項目創建對象。 您只需創建一個參考,它們都將使用相同的參考並進行更新,您將獲得最新的更新值。
for (int i=0;i<150;i++){
m= new double[3];
}
將對象創建放在for循環內
因為您一直在使用同一數組,所以一遍又一遍有效地覆蓋其值。
您需要為列表的每個成員分配一個新的數組。 將new double[3]
放入循環中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.