面试准备 集合 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);
}
相关推荐
IGAn CTOU29 分钟前
王炸级更新!Spring Boot 3.4 正式发布,新特性真香!
java·spring boot·后端
C雨后彩虹36 分钟前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
tycooncool1 小时前
Spring中的IOC详解
java·后端·spring
014-code1 小时前
日志规范:怎么写才不算写废话
java·开发语言·设计模式·日志
一江寒逸1 小时前
零基础从入门到精通 AI Agent 开发(全栈保姆级教程)附加篇:AI Agent 面试八股文全集
人工智能·面试·职场和发展
爱敲代码的小黄1 小时前
我重新梳理了一遍 RAG,终于明白它不只是接个向量库
后端·面试·agent
CQU_JIAKE1 小时前
4.17[Q]
java·linux·服务器
久菜盒子工作室1 小时前
面试经验|产品经理|自我介绍
面试·职场和发展·产品经理
Ruihong2 小时前
Vue v-bind 转 React:VuReact 怎么处理?
vue.js·react.js·面试
亦暖筑序2 小时前
Spring AI Alibaba 报错合集:我踩过的那些坑
java·后端