2016-11-09 51 views
0

單圈我有2個的ArrayList:與2倍的ArrayList

ArrayList<LatLng> list1 
ArrayList<String> list2 

我嘗試用2 ArrayList的一環。例。

for(LatLng a : list1 [i dont know what put here] String b : list2) 
{ 

Log.d("Response", String.valueOf(a, b)); 

} 

我該怎麼辦?

+1

它們是否被相同的索引綁定? (即list1上的第一個位置與list2中的第一個位置配對),如果是這樣,只需要使用一個正常循環。 ).blablabla list2.get(i).blablabla – leofontes

+0

你能更精確嗎?二維數組看起來不像這樣。 – estoke

回答

3

您不能使用循環超過2只列出了一次增強,唯一的選擇是使用一個正常的循環:

//Assuming list1 and list2 are identical sizes: 
for (int i = 0; i < list1.size(); i++){ 
    LatLng latLng = list1.get(i); 
    String s = list2.get(i); 
    //Do something with them 
} 

如果你真的想這樣做在1圈,你可能考慮做一個組合對象:

public class CombinationObject{ 

    private LatLng latLng; 
    private String string; 

    //GETTERS & SETTERS 
} 

然後,您可以添加元素的CombinationObject列表:List<CombinationObject> list;和循環剛過奇異名單。

for (CombinationObject co : list){ 
    LatLng latLng = co.getLatLng(); 
    String s = co.getString(); 
    //Do something... 
} 
+0

大小是相同的,所以我使用第一個答案,但這個循環做從數組的最後一個元素運行,應該從第一個運行,我想以相反的順序工作 – patrick1980

+1

使用'Collections.reverse(list)'來反向命令。或者按相反順序添加條目,或創建自己的列表實現。你沒有在你的問題中指定相反的順序... –

+0

我沒有在我的問題中指定這個,因爲當我使用1 Arraylist是好的,從1到10,但是當我使用2 Arraylist時,它是從10到1 – patrick1980

1

你的問題不是很清楚,但我認爲你試圖實現的是從每個ArrayList獲取相應索引的值?如果是這樣,你可以這樣實現它:

ArrayList<LatLng> list1; 
ArrayList<String> list2; 

if(list1.size() != list2.size()){ 
    Log.e("Arrays are not of the same size!"); 
} 
else{ 
    for(int i = 0; i<list1.size(); i++){ 
     String s = list1.get(i).toString() + " : " + list2.get(i).toString(); 
     Log.d("Response", s); 
    } 
}