【发布时间】:2018-08-14 08:22:52
【问题描述】:
我有一个迭代 ArrayMap 键的代码,但由于未知原因,我得到了一个 Array Index Out Of Bounds 异常
来自 Crashalytics:
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
length=56; index=56
android.util.ArrayMap$1.colGetEntry (ArrayMap.java:763)
android.util.MapCollections$ArrayIterator.next (MapCollections.java:55)
代码如下所示:
private ArrayMap<String,RequestData> handlers = new ArrayMap<>();
public void removeAllHandlers() {
synchronized (handlers) {
for (String s : handlers.keySet()) {
handlers.remove(s);
}
}
}
异常发生在这一行:for (String s : handlers.keySet())
任何线索我做错了什么?
【问题讨论】:
-
索引在 Java 中为 0,最大索引为 55,您正在尝试检索具有 56 个元素的数组的第 57 个元素。在迭代同一个地图时从地图中删除元素是自找麻烦。
-
handlers.clear()怎么样?
标签: java android indexoutofboundsexception array-map