常用集合的默认初始容量和扩容的原因:
当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,
离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率
大大降低。
加载因子的系数小于等于1,意指 即当 元素个数 超过 容量长度*加载因子的系数 时,进行扩容。另外,扩容也是有默认的倍数的,不同的容器扩容情况不同。
List 元素是有序的、可重复
ArrayList、Vector默认初始容量为10
Vector:线程安全,但速度慢
底层数据结构是数组结构
加载因子为1:即当 元素个数 超过 容量长度 时,进行扩容
扩容增量:原容量的 1倍
如 Vector的容量为10,一次扩容后是容量为20
ArrayList:线程不安全,查询速度快
底层数据结构是数组结构
扩容增量:原容量的 0.5倍+1
如 ArrayList的容量为10,一次扩容后是容量为16
Set(集) 元素无序的、不可重复。
HashSet:线程不安全,存取速度快
底层实现是一个HashMap(保存数据),实现Set接口
默认初始容量为16(为何是16,见下方对HashMap的描述)
加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容
扩容增量:原容量的 1 倍
如 HashSet的容量为16,一次扩容后是容量为32
Map是一个双列集合
HashMap:默认初始容量为16
(为何是16:16是2^4,可以提高查询效率,另外,32=16<<1 –>至于详细的原因可另行分析,或分析源代码)
加载因子为0.75:即当 元素个数 超过 容量长度的0.75倍 时,进行扩容
扩容增量:原容量的 1 倍
如 HashSet的容量为16,一次扩容后是容量为32
eg.
ArrayList list = new ArrayList(20);中的list扩充几次?
答:0次。
解析: ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍。
ArrayList list=new ArrayList(20); 这种是指定数组大小的创建,没有扩充。
转自http://geek.csdn.net/news/detail/126216
相关推荐
当第一次掉用 put() 方法时,数组就会自动的扩容为 16,加载因子为 0.75。 在 jdk1.8 中添加元素时,他会根据添加数据的键与值创建一个 Entry 对象,HashCod() 方法根据 Entry 对象中的键计算出哈希值,再根据哈希...
集合类使用初始容量和加载因子调整自己的大小。集合类全部支持泛型,是一种数据安全的用法。 Java集合框架定义了几个接口。这些集合接口决定了集合实现类的基本特性。对于不同的集合实现类提供了这些标准接口的不同...
java hashmap 扩容因子为什么是0.75,官方给出的解释
HashMap(int initalCapacity)指定的初始容量和默认负载因子(0.75) HashMap(int initalCapacity,float loadFactor)具有指定的初始容量和负载因子 HashMap(Map,?extends V> m)HashMap与指定相同的映射 Map 4.常用...
基于增量信息逐层解释的因子模型框架搭建,招商证券因子模型系列1. ========补充字数专用================补充字数专用================补充字数专用================补充字数专用================补充字数专用====...
本文主要以几个方面来讲解一下HashMap: 1、HashMap默认容量 2、HashMap如何扩容 ...为啥扩容因子默认是0.75f?(HashMap的源码翻译) 假如你创建HashMap的时候传入一个不是2的幂的初始值,HashMap会
市(县)级温室气体默认排放因子.pdf
HashMap有四个构造方法,其中初始容量和加载因子是影响性能的重要参数。加载因子是哈希表当前key的数量和容量的比值,当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表提前进行resize操作。 ...
华泰证券-多因子系列之四:单因子测试之动量类因子 在本报告中,华泰证券研究团队对动量类因子的单因子测试进行了深入分析和研究。动量因子是一类非常重要的风格因子,能够反映股票的短期价格变化特征。本报告选取...
华泰证券-多因子系列之二:华泰单因子测试之估值类因子(2) 本报告主要介绍了华泰证券的多因子模型体系,特别是估值类因子的选择和测试。报告中,作者选取了十个具有代表性的估值因子,包括EP、EPcut、BP、SP、...
加载因子: 0.75 当16*0.75达到一个临界点12进行扩容 扩容: 每次扩容原大小的2倍 总结: 如果存储键值对数据–>Map,HashMap 如果存储的单个数据值–>Collection 如果有序,可重复,根据根据索引进行操作 List 大量操作...
脉冲因子、波形因子、裕度因子、峰值因子、偏度、峭度.m
本表以Fama-French三因子资产定价模型为依据,提供市场溢酬因子(Rm-Rf),市值因子(SMB)和账面市值比因子(HML)的月序列数据。 表中计算所用的无风险收益数据选择标准为:开始--2002年8月6日用三个月期定期银行...
Python多因子选股模型 1.因子数据合并 2.行业中性化 3.数据标准化 4.异常值数据和离群点处理 5.PCA因子合成 6.等权重因子合成 7.综合打分法(IC值计算) 8.策略回测:选取前排名前20只股票买入 9.收益曲线绘制 包含...
论文研究-FF因子与宏观因子是潜在风险... (2) 基于工业总产值增长率、通货膨胀率、银行同业拆借利率以及M2 增长率构造宏观经济因子,发现单个宏观经济因子和整个宏观经济因子集合都不适合作为投资组合风险因子的代理.
%初始化各个因子 c1=1.4962; %学习因子c1 c2=1.4962; %学习因子c2 w=0.7298; %惯性权重w N=20; %粒子群规模 D=6; %搜索空间维数(本程序适合3维及以上,不能求解1,2维) eps=10^(-6); %满足条件限制的误差(在不知道...
华泰多因子模型服务体系主要规划如下:依次对不同类别的风格因子进行单因子测试,对筛选出的有效因子进行大类因子分析,在收益预测和风险预测的基础上,构建选股模型,对选股模型进行回测和绩效分析。后期规划包括...
输气管道压缩因子计算,石油大学,输气管道设计与管理
此外,报告还对波动率因子的行业间差异、波动率因子与市值因子的相关性、波动率因子间相关性进行了分析,并提出了风险提示:单因子测试结果是历史经验的总结,存在失效的可能。 知识点: 1. 波动率因子是一类非常...
五因子、三因子模型.zip