面试准备 集合 List

ArrayList

底层实现

使用Object[] 动态数组进行存储

特性

  • 支持存储null值
  • 非线程安全
  • 支持快速访问

初始化方法

  • 无参--返回一个空的列表(DEFAULTCAPACITY_EMPTY_ELEMENTDATA)
  • 指定初始容量: new ArrayList(20);
  • 指定集合 new ArrayList(collection);

扩容

  1. 如果是使用无参构造方法进行初始化的,当添加第一个元素时,扩容成10;
  2. 当下一次超出容量时,扩容为上次容量的1.5倍
  3. 批量添加会出发多次扩容(10->25->...)

遍历方式

  • for-each(本质上是使用迭代器)
java 复制代码
for(String s : list)
  • for循环
  • 迭代器(单线程下遍历时修改不会引起异常)
java 复制代码
Iterator(String) it = list.iterator();
while(it.hasnext()) {
print(it.next);
}
相关推荐
静若繁花_jingjing10 分钟前
IDEA下载
java·ide·intellij-idea
代码丰18 分钟前
函数式接口+default接口+springAi 中的ducumentReader去理解为什么存在default接口的形式
java
果汁华2 小时前
java学习连续打卡30天(1)
java
武子康2 小时前
Java-171 Neo4j 备份与恢复 + 预热与执行计划实战
java·开发语言·数据库·性能优化·系统架构·nosql·neo4j
m0_639817152 小时前
基于springboot火锅店管理系统【带源码和文档】
java·spring boot·后端
会编程的林俊杰3 小时前
SpringBoot项目启动时的依赖处理
java·spring boot·后端
一叶飘零_sweeeet4 小时前
深度拆解汽车制造系统设计:用 Java + 设计模式打造高扩展性品牌 - 车型动态生成架构
java·设计模式·工厂设计模式
王家羽翼-王羽4 小时前
nacos 3.1.0 运行主类报错 com.alibaba.cloud.nacos.logging.NacosLoggingAppRunListener
java
狂炫冰美式4 小时前
前端实时推送 & WebSocket 面试题(2026版)
前端·http·面试
影子24015 小时前
oralce创建种子表,使用存储过程生成最大值sql,考虑并发,不考虑并发的脚本,plsql调试存储过程,java调用存储过程示例代码
java·数据库·sql