簡體   English   中英

Arraylist Java總是給我最后一個值

[英]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.

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