与2倍的ArrayList
单圈我有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));
}
我该怎么办?
您不能使用循环超过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...
}
大小是相同的,所以我使用第一个答案,但这个循环做从数组的最后一个元素运行,应该从第一个运行,我想以相反的顺序工作 – patrick1980
使用'Collections.reverse(list)'来反向命令。或者按相反顺序添加条目,或创建自己的列表实现。你没有在你的问题中指定相反的顺序... –
我没有在我的问题中指定这个,因为当我使用1 Arraylist是好的,从1到10,但是当我使用2 Arraylist时,它是从10到1 – patrick1980
你的问题不是很清楚,但我认为你试图实现的是从每个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);
}
}
它们是否被相同的索引绑定? (即list1上的第一个位置与list2中的第一个位置配对),如果是这样,只需要使用一个正常循环。 ).blablabla list2.get(i).blablabla – leofontes
你能更精确吗?二维数组看起来不像这样。 – estoke