android 数组下标问题

我要在arraylist指定位置添加数据,List shop_list= new ArrayList();

此时的shop_list的size是0,如果我往1或者2的位置添加数据,会数组越界。请问怎么解决

只能按照顺序添加,不然你就新建一个数组,往数组里面放。另外你可以在list已经有数据的时候,往指定的位置添加。

给空的位置填null吧

亲,你这种需求是基于什么问题,如果能将你遇到的问题说出来,也许大家能给你一个很好的解决方案。
你遇到的问题报错原因在于ArrayList的set方法中有检查你给定的位置是否越界。

public E set(int index, E element) {
        rangeCheck(index);

        E oldValue = elementData(index);
        elementData[index] = element;
        return oldValue;
    }

        private void rangeCheck(int index) {
        if (index >= size)
            throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
    }

大哥arraylist是内部实现是数组,如果你要在指定位置添加,得用链表LinkedList,这样效率才高。。

arraylist 原本就是有序无重复的容器, 不用指定的。 如果一定要指定位置,建议使用hashMap!

必须先给arraylist赋值才能插入到下标1或者2的位置,不然数组下标最大为0,1和2是不存在的。。插入肯定出现越界异常。