2016-02-26 76 views
0

在我的for-loop下面,我試圖添加所有car IDSpersons相關的一定狀態。數組未填充:添加方法的使用不正確?

我的代碼編譯並運行,但是arrayList的大小:listOfCarIds剩餘的是。即似乎沒有添加任何東西

在我如何實現這個過程中是否存在錯誤?

for(int i=0 ; i < personsWithStatus.size() ; i++) 
{ 
    idOfCarRelatingToPerson = personsWithStatus.get(i).getCarId(); 

    List<String> listOfCarIds = new ArrayList(); 

    listOfCarIds.add(idOfCarRelatingToPerson); 
} 
+0

您正在每次迭代中創建一個新的'listOfCarIds'並放棄它。也許你打算在循環之前初始化* field *而不是局部變量。 –

回答

6

聲明你ArrayList外面ArrayList中您已聲明裏面的for循環將初始化每次和有隻環內的範圍。

List<String> listOfCarIds = new ArrayList(); 
for(int i=0 ; i < personsWithStatus.size() ; i++) { 
     idOfCarRelatingToPerson = personsWithStatus.get(i).getCarId(); 
     listOfCarIds.add(idOfCarRelatingToPerson); 
      } 
+1

這是爲什麼? – java123999

+0

@ java123999每次循環訪問代碼中的列表時,都會聲明一個新列表並將其添加到該列表中。循環完成後,該列表已超出範圍並且無法訪問。 – Michael

+0

@ java123999我添加了更多描述,讓你明白 – Pragnani

1

你正在循環中聲明你的ArrayList。每次遍歷循環時,它都會將listOfCarIDs重置爲空的ArrayList。

在循環外部聲明ArrayList,並只使用循環來添加它。