创建一个HashMap实例,该实例具有足够高的“初始容量”
创建一个HashMap实例,该实例具有足够高的“初始容量”
/**
* 创建一个{@link HashMap}实例,该实例具有足够高的“初始容量”
*
* @param expectedSize 预计容量
* @since 该方法摘自com.google.guava-30.1.1-jre版本, 由于公司项目没有用此jar包,所以这里摘出来方便使用
*/
public static <K, V> HashMap<K, V> newHashMapWithExpectedSize(int expectedSize) {
return new HashMap<>(capacity(expectedSize));
} /**
* 返回一个容量,该容量足以使Map不被调整大小,只要它的大小不超过expectedSize,并且加载因子大于等于它的默认值(0.75)
*
* @since 该方法摘自com.google.guava-30.1.1-jre版本, 由于公司项目没有用此jar包,所以这里摘出来方便使用
*/
static int capacity(int expectedSize) {
if (expectedSize < 3) {
if (expectedSize < 0) {
throw new IllegalArgumentException("容量不能为负数,但是现在是: " + expectedSize);
}
return expectedSize + 1;
}
// int的最大二次幂
int maxPowerOfTwo = 1 << (Integer.SIZE - 2);
if (expectedSize < maxPowerOfTwo) {
//这是JDK8中用于在发生putAll时调整大小的计算;这似乎是我们能做的最保守的计算。0.75是默认负载系数。
return (int) ((float) expectedSize / 0.75F + 1.0F);
}
// int值大于int的最大二次幂了,就没有更大的了
return Integer.MAX_VALUE;
}
创建一个HashMap实例,该实例具有足够高的“初始容量”的更多相关文章
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)
使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)
这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...
- 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)
梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...
- 创建一个 Vue 的实例
每个 Vue 应用都是通过 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 选项:el.data.methods el: 类型: ...
- 创建一个vue实例
创建一个vue实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 MVVM 模型,但是 Vue ...
- Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖
1 Vue介绍 1.1 官方介绍 vue是一个简单小巧的渐进式的技术栈,它提供了Web开发中常用的高级功能:视图和数据的解耦.组件的服用.路由.状态管理.虚拟DOM 说明:简单小巧 -> 压缩后 ...
- Eucalyptus-利用镜像启动一个Windows Server 2008r2实例
1.前言 使用kvm制作Eucalyptus镜像(Windows Server 2008r2为例)——http://www.cnblogs.com/gis-luq/p/3990792.html 上一篇 ...
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
- 【转】怎样创建一个Xcode插件(Part 2)
原文:How To Create an Xcode Plugin: Part 2/3 原作者:Derek Selander 译者:@yohunl 译者注:原文使用的是xcode6.3.2,我翻译的时候 ...
- 【Android Developers Training】 18. 重新创建一个Activity
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
随机推荐
- Linux环境下给python项目写个启停服务
写个服务,写完后放在/lib/systemd/system路径下 update_rule.server [Unit] Description = TinyScan update rule [Servi ...
- pillow 创建图片并添加一些自定义信息
from PIL import Image vm = Image.new('RGBA', (dshape[1], dshape[0])) vm = Image.fromarray(np.array(s ...
- docker中搭建Ubuntu:16.04+python3.6+django环境
用vim 新建一个Dockerfile和sources.list文件,在里面添加如下内容. #sources.list deb http://mirrors.163.com/ubuntu/ xenia ...
- 第三周day4
第三周day4,星期四 所用时间:1h 代码量:0 博客量:2 了解到的知识点:Toast.
- Mybatis开发之mapper代理实现自定义接口(常用)
Mybatis开发之mapper代理实现自定义接口(常用) 通过mapper代理实现自定义接口 自定义接口,接口里面定义定义相关的业务方法 编写方法相对应的Mapper.xml. 定义完接口后,Map ...
- uniapp文件复制,重命名以及删除
查找某目录下的文件 plus.io.resolveLocalFileSystemURL( "_www/static/本地.png", funct ...
- Jupyter 快捷键1
Jupyter Notebook 有两种键盘输入模式.编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的.命令模式,键盘输入运行程序命令:这时的单元框线是灰色. 命令模式 (按键 Esc ...
- kmp失效函数(测试博客的编辑器)
1 int *find_next(char *p) 2 { 3 int k = -1; //right shift i-k 4 int i = 0; 5 int m = strlen(p); 6 in ...
- mysql 创建账号并授权
1.mysql查看所有账号信息 mysql> select user,host from mysql.user; 2.创建账号 mysql> creat user 'glasssix' I ...
- GitBook的使用备忘
GitBook环境搭建 npm install -g gitbook-cli # 新建目录,如helloworld cd helloworld # 执行此语句,需等待一段时间 gitbook init ...