新手到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',你可以像其他答案中提到的那样进行施放。 –