本文主要是介绍ArrayMap java.lang.ArrayIndexOutOfBoundsException,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
错误堆栈:
java.lang.ArrayIndexOutOfBoundsException: length=0; index=1at android.support.v4.util.SimpleArrayMap.indexOf(SimpleArrayMap.java:83)at android.support.v4.util.SimpleArrayMap.put(SimpleArrayMap.java:381)
示例错误代码:
final ArrayMap testArrayMap = new ArrayMap();new Thread("线程1"){@Overridepublic void run() {super.run();while (true){testArrayMap.put("aaa","fffff");}}}.start();new Thread("线程2"){@Overridepublic void run() {super.run();while (true){testArrayMap.clear();}}}.start();
错误原因:
ArrayMap 不支持多线程,请在一个线程里面使用。不然会导致数组越界。如果想在多线程里面使用,请使用HasTable。
google 的 ArrayMap 本身就没有支持多线程,在最新的support 包里面,如果你还多线程使用ArrayMap,就会throw CME (ConcurrentModificationException)
这篇关于ArrayMap java.lang.ArrayIndexOutOfBoundsException的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!