ArrayList的一些思考

代码1:

  List<Object> list = new ArrayList<Object>();
        System.out.println(list.get(0));

 如上的代码抛出 IndexOutOfBoundsException

代码2 :

 

    List<Object> list = new ArrayList<Object>();
        list.add(null);
        System.out.println(list.get(0));

 返回null;

       ArrayList不传参数时,默认初时化的数组为10个,对象的数组初时化的时候默认值本来就是null,为什么一个代码1会返回异常呢?

      后来看了下源代码,原来get的时候,还需要对size进行判断,当你执行添加的时候,size+1,当执行删除操作时,size-1。

    size 变化只和塞入和删除操作有关。

 

你可能感兴趣的:(ArrayList)