目录

知识区

集合框架中的ArrayList

ArrayList的构造

ArrayList的使用

ArrayList的遍历

ArrayList的扩容机制

面试题

ArrayList的应用:简单的洗牌算法

运行结果

杨辉三角

模拟实现

自定义异常

位置不合法异常

为空异常

接口

类型定义

插入(尾插)

指定位置插入

检查插入位置

检查插入位置给(get用)

扩容

查找

查找是否有该元素

查找该元素所在位置

获取指定位置元素

更新

删除

求长度

清空

打印

判满

判空

为空异常


ArrayList是实现了List接口的类

ArrayList是Java中的顺序表

知识区

集合框架中的ArrayList

1. ArrayList是以泛型方式实现的,使用时必须要先实例化

2. ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问

3. ArrayList实现了Cloneable接口,表明ArrayList是可以clone的

4. ArrayList实现了Serializable接口,表明ArrayList是支持序列化的

5. 和Vector不同,ArrayList线程不安全,单线程下可用, 多线程中可选Vector或CopyOnWriteArrayList

6. ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表

ArrayList的构造

ArrayList的使用

ArrayList的遍历

1.for循环+下标

2.foreach

3.使用迭代器

ArrayList的扩容机制

解析:部分方法(扩容机制)内部源码分析(了解)

总结:

1. 检测是否真正需要扩容,如果是调用grow准备扩容

2. 预估所需大小:初步预估按1.5倍扩容—>超过1.5倍大小,按照用户所需大小扩容 ​扩前检测,防止太大导致扩容失败

3. 用copyOf扩容

面试题

题目:str1: welcome to bit str

2: come

删除str1中出现的所有str2的字符

删除之后的结果:w l t bit

要求结果放在集合list中

答:👆

ArrayList的应用:简单的洗牌算法

运行结果

杨辉三角

模拟实现

自定义异常

位置不合法异常

为空异常

接口

类型定义

插入(尾插)

指定位置插入

思路:

1.检查要插入的位置是否合法

2.判满:满了扩容

3.挪元素:pos之后的全往后挪 4.往pos放值

检查插入位置

检查插入位置给(get用)

扩容

用到了引入的包Array

查找

查找是否有该元素

查找该元素所在位置

获取指定位置元素

更新

删除

思路:

1.判空

2.获取该值的位置——>不合法直接返回

3.后面的往前挪,将其覆盖掉=删除

求长度

清空

打印

判满

判空

为空异常

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐