面试准备 集合 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);
}
相关推荐
UQR9 小时前
一、Java基础高频面试题
java·开发语言
AC赳赳老秦9 小时前
网页公开附件自动采集:OpenClaw 批量下载页面内嵌 Word/Excel 附件,统一格式后结构化入库
java·python·word·php·excel·deepseek·openclaw
程序员爱钓鱼9 小时前
Rust 生命周期详解:生命周期标注、约束与真实项目应用
后端·面试·rust
上海云盾商务经理杨杨9 小时前
Tomcat 弱配置漏洞渗透实战!批量 getshell 高频漏洞
java·web安全·tomcat
10mAh9 小时前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端
狂师9 小时前
用AI做自动化测试,哪些是真不行,哪些是你不会用?
人工智能·面试·测试
深念Y10 小时前
stable-diffusion.cpp 的 FLUX.2 Klein 9B 分步
java·前端·数据库
阿pin10 小时前
Java随笔-红黑树
java·python·算法·红黑树
我命由我1234510 小时前
Jetpack Compose - @Preview 注解
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
为美好的生活献上中指10 小时前
Spring AI Advisor 深度实战:构建严谨的 AI Agent 拦截链
java·人工智能·spring·advisor·aiagent