共同点:都是存储数据的容器。
不同点:数组的容量是固定的,集合的容量是可变的。
| public ArrayList() | 创建一个空的集合对象 |
|---|---|
| public boolean add(E e) | 将指定的元素追加到此集合的末尾 |
| public void add(int index,E element) | 在此集合中的指定位置插入指定的元素 |
ArrayList:
可调整大小的数组实现
是一种特殊的数据类型 泛型
怎么用呢?
在出现E的地方我们使用引用数据类型替换即可。
成员方法:
| public boolean remove(Object o) | 删除指定的元素,返回删除是否成功 |
|---|---|
| public E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
| public E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
| public E get(int index) | 返回指定索引处的元素 |
| public int size() | 返回集合中元素的个数 |
** 创建集合并给集合中添加元素并打印:**

打印结果:

删除指定元素

打印结果

**注意:**此方法有个弊端,当集合中相同元素在相邻位置时,删除这个元素时,只能删除一个。
示例:


此时我调用方法,删除集合中的 a 元素,但只删除了一个。
原因:
系统默认从集合中的第一个元素开始找,箭头指向当前集合元素,当找到 a 时就删除,箭头指向下一个索引的位置。

此时,因为集合是自动变长与自动缩短的容器,第二个a元素会自动到0索引的位置,集合后边元素依次挪到前一个索引的位置上。

所以第二个a元素并未被删除。
改进:
只需要遍集合元素,每次判断后让索引减一即可。
示例:

结果:

在此集合中的指定位置插入指定的元素

结果:

删除指定索引处的元素

结果:

修改指定索引处的元素

结果:

返回指定索引处的元素

结果:

获取集合中元素的个数

结果:
