Java集合之List接口(下)
一、承接上篇Java集合之List接口(上),继续对List接口进行讲解
二、List接口下的实现类:
2.1、ArrayList集合:
2.1.1、ArrayList是以数组实现的集合,本质上可看作是动态可变数组,不支持同步,线程不安全;实现同步需要:Collections.synchronizedList(new ArrayList<>())
2.1.2、ArrayList集合特点:
2.1.2.1、ArrayList集合中存入的数据主要用于查询操作,不适合做指定位置频繁插入和删除的操作
2.1.2.2、ArrayList集合中数据填满时,会自动扩充容器大小的50%
2.1.3、ArrayList数据结构分析:查找和修改数据非常快,插入和删除指定位置数据比较慢
示例代码:
2.2.、LinkedList集合:
2.2.1、LinkedList是以双向链表实现的集合,不支持同步,线程不安全,实现同步需要:Collections.synchronizedList(new LinkedList<>());
2.2.2、LinkedList集合特点:
2.2.2.1、可被当作堆栈,队列和双端队列进行操作
2.2.2.2、顺序访问高效,随机访问较差,中间插入和删除高效,适用于经常变化的数据
2.2.3、LinkedList数据结构分析:插入和删除数据非常快,查找和修改数据比较慢
2.2.4、LinkedList集合特有方法:
1、往第一个位置添加元素:addFirst(元素)
2、往最后一个位置添加元素:addLast(元素)
3、移除第一个元素:removeFirst()
4、移除最后一个元素:removeLast()
5、获取第一个元素:getFirst()
6、获取最后一个元素:getLast()
7、将元素放入集合中:push(E e)
8、从集合中弹出一个元素:pop()
示例代码:
2.3、Vector集合:
2.3.1、Vector也是以数组实现的集合,本质上可看作是动态可变数组,Vector同步,可以在多线程下使用
2.3.2、Vector集合特点:Vector集合中存入的数据主要用于查询操作,不适合做指定位置频繁插入和删除的操作
2.3.3、Vector集合特有方法:
1、添加元素:addElement(元素)
2、获取所有元素:elements()
3、遍历判断是否还有元素:hasMoreElements()
4、取出下一个元素:nextElement()
示例代码:
2.3.4、Vector集合数据结构分析:查找和修改数据非常快,插入和删除指定位置数据比较慢;Vector加了线程锁,线程安全
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?