新手到Java和Android ...如何迭代通過從對象派生的ArrayList
我正在使用類來存儲一組Google地圖LatLng點來遍歷。下面是我使用分配一個ArrayList對象類:
public class GeoPoints implements Iterable<String>, Iterator<String> {
private HashMap<String, Object> internalStorage = new HashMap<String, Object>();
private int count = 0;
public void add(String key, Object value) {
internalStorage.put(key, value);
}
public Object get(String key) {
return internalStorage.get(key);
}
@Override
public boolean hasNext() {
if (count < internalStorage.size()) {
return true;
}
return false;
}
@Override
public String next() {
if (count == internalStorage.size()) throw new IndexOutOfBoundsException();
count++;
return (String) internalStorage.keySet().toArray()[count - 1];
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
@Override
public Iterator<String> iterator() {
return this;
}
}
我放置點是這樣的:
geoPoints = new GeoPoints();
// Load GeoPoints ArrayList...
List<LatLng> points = new ArrayList<LatLng>();
points.add(new LatLng(45.778754, -124.811288));
points.add(new LatLng(28.781740, -124.350814));
points.add(new LatLng(48.712660, -60.982386));
points.add(new LatLng(20.354554, -58.794457));
geoPoints.add("US_MAP", points);
要訪問我使用一個對象for循環如下:
for (String key : geoPoints) {
Object obj = geoPoints.get(key);
}
在這一點上,我可以調試並看到Object obj包含ArrayL我是用上面的四點創建的。
對於我的生活,我無法弄清楚如何訪問這些Arraylist值以迭代或循環的值。
我已經試過這樣分配obj轉換爲一個ArrayList迭代器:
ArrayList<?> myTestItr = geoPoints.get(key);
不工作,我相信原因是顯而易見的... :)
我肯定是有這個簡單的答案(使用Iterator通配符等),但我很短。
任何和所有的幫助,非常感謝!
提前致謝!
我會考慮使用這個。謝謝! – quiglyd
如果你有一個特定的原因,爲什麼你在地圖上使用了'Object',你可以像其他答案中提到的那樣進行施放。 –