当前位置: 首页 > news >正文

java常见集合容器的扩容增量

java常见集合容器的扩容增量

汇总:

ArrayList:默认初始容量为10,扩容为原容量的1.5倍
Vector:默认初始容量为10,扩容为原容量的2倍
HashSet:默认初始容量为16,扩容为原容量的2倍,加载因子为0.75
HashMap:默认初始容量为16,扩容为原容量的2倍,加载因子为0.75
PriorityQueue:默认初始容量为11,扩容为原容量的1.5倍

List 元素是有序的、可重复

ArrayList、Vector默认初始容量为10

Vector:

线程安全,但速度慢
底层数据结构是数组结构
加载因子为1:即当 元素个数 超过 容量长度 时,进行扩容
扩容增量:原容量的 1倍

如 Vector的容量为10,一次扩容后是容量为20

ArrayList:

线程不安全,查询速度快
底层数据结构是数组结构
扩容增量:原容量的 1.5倍

如 ArrayList的容量为10,一次扩容后是容量为15

Set(集) 元素无序的、不可重复。

HashSet:

线程不安全,存取速度快
底层实现是一个HashMap(保存数据),实现Set接口
扩容机制和HashMap一样

构造方法摘要HashSet()
HashSet(int initialCapacity)

构造一个新的空 set,其底层 HashMap 实例具有指定的初始容量和默认的加载因子(0.75)。
HashSet hs=new HashSet(1);

所以可见 HashSet类,创建对象的时候是可以的制定容量的大小的 ,期中第二个就具有这个工功能。

Map是一个双列集合

HashMap

默认初始容量为16(为何是16:16是2^4,可以提高查询效率)
加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容
扩容增量:原容量的 1 倍

如 HashMap的容量为16,一次扩容后是容量为32

http://www.jsqmd.com/news/800241/

相关文章:

  • 2026优质钢格板厂家盘点:沟盖板/踏步板/光伏走道板/插接钢格板/平台钢格板全品类供应 - 栗子测评
  • 告别迷茫!Quartus II 18.1 Platform Designer (Qsys) 保姆级配置流程,从新建工程到引脚分配
  • 如何永久保存微信聊天记录?终极免费工具完整指南
  • Arcade输入系统详解:从键盘鼠标到游戏控制器 [特殊字符]
  • U盘使用记录删除
  • Python工具实现百度网盘高速下载的完整指南
  • 构建AI辅助开发工作流:从工具选型到实战避坑指南
  • Dify对话客户端开发指南:从开源项目到定制化AI应用前端
  • 从OOM到MySQL锁表:一次线上Java服务内存泄漏的完整排查与修复实录
  • 工业4.0神器?正点原子 STM32MP257 异核架构登场!Cortex-A35 x Cortex-M0,能玩出哪些花样?
  • AI工作流任务管理:OpenClaw-TODO插件实现对话式结构化待办
  • 别再在面包板上折腾了!用LMV358做个5V单电源的迷你信号放大模块(附AD工程文件)
  • AI智能体深度集成VSCode:AgentKit-VSCode扩展开发实战指南
  • C++——智能指针 shared_ptr
  • 从匿名浏览到客户身份,SAP Internet User 的创建、编辑与权限边界
  • 终极图标资源指南:如何快速找到数千个免费图标 [特殊字符]
  • 并购获批复/注册时靴子落地:为什么慧博云通收购获批之日,就是估值修复启动之时
  • 【信息科学与工程学】【安全领域】第二十七篇 几何学在网络安全的应用(1)
  • ARM SCTLR寄存器详解:系统控制与配置实践
  • RedwoodJS协调器:终极分布式协调与一致性解决方案指南
  • a16n:实现AI编程助手配置可移植性的插件化转换工具
  • 教授你的模型从自身学习
  • Redis集群高可用:从主从复制到Cluster模式生产实战
  • EdgeDB数组操作完全指南:高效处理多维数据集合的10个技巧
  • 树莓派Wi-Fi配置全攻略:从图形界面到命令行实战
  • ARM GIC-500中断控制器调试架构与实战技巧
  • 2026热镀锌钢格板优选厂家推荐:技术过硬的不锈钢钢格板、压焊钢格板源头厂家 - 栗子测评
  • 继电器驱动器节能模式原理与应用实践
  • 调试与热重载:ASP.NET Core的完美结合
  • 从零到一:手把手教你用Python模拟金属-半导体接触的能带弯曲(附代码)