菜鸟的学习之路(9) — ArrayList类
一.认识ArrayList:
1.ArrayList是一个动态的数组(集合),可以在生成后对其中的内容进行增删改。相对于Array(静态数组),使用更灵活,可以对其内容进行修改。
2.实现的接口是Collection和Iterable、List、RandomAccess、Cloneable、Serializable接口。
3.ArrayList的父类是AbstractList,它的子类有:AttributeList,RoleList,RoleUnresolvedList。
4.ArrayList的源码中可以看出,它的底层是用数组实现的。
简单操作:
二.ArrayList详解:
1).构造方法:
a)ArrayList()
构造一个初始容量为十的空列表。
例: ArrayList array = new ArrayList();
b)ArrayList(Collection)
构造一个包含指定Collection的元素列表,按照返回顺序排序。
c)ArrayList(int)
构造一个指定容量的空列表。
2).方法:
帮助文档中的截图:
可能在这里看不清楚,大家可以看帮助文档的。
3).ArrayList的使用注意:
如果增加的元素个数超过10个,就会在底层重新生成一个新的数组,长度为原数组长度的1.5倍+1,然后就将原数组中的内容复制过来,后续的要增加的内容会在新数组后添加,如果在超出范围,继续重复上边的操作。
删除集合中的元素时,删除的元素位置让后一个元素代替,统一的向前移动一个位置。
集合中存放的只能是对象,而且都是Object类型,原生数据类型无法放置在里面,所以我们需要包装类,来进行存放。 例: array.add(new Integer(1));
当取出集合中的值时,需要进行强制转换,转换为存进去时的类型。
部分方法的使用: