`
liuzhaomin
  • 浏览: 199282 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

HashMap初始化

 
阅读更多

 

public HashMap(int initialCapacity, float loadFactor) {
        if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal initial capacity: " +
                                               initialCapacity);
        if (initialCapacity > MAXIMUM_CAPACITY)
            initialCapacity = MAXIMUM_CAPACITY;
        if (loadFactor <= 0 || Float.isNaN(loadFactor))
            throw new IllegalArgumentException("Illegal load factor: " +
                                               loadFactor);

        // Find a power of 2 >= initialCapacity
        int capacity = 1;
        while (capacity < initialCapacity)
            capacity <<= 1;

        this.loadFactor = loadFactor;
        threshold = (int)(capacity * loadFactor);
        table = new Entry[capacity];
        init();
    }

 

public HashMap(int initialCapacity) {
        this(initialCapacity, DEFAULT_LOAD_FACTOR);
    }

 

/**
     * Constructs an empty <tt>HashMap</tt> with the default initial capacity
     * (16) and the default load factor (0.75).
     */
    public HashMap() {
        this.loadFactor = DEFAULT_LOAD_FACTOR;
        threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR);
        table = new Entry[DEFAULT_INITIAL_CAPACITY];
        init();
    }
 

 

 

分享到:
评论

相关推荐

    java在hashmap初始化时赋初值过程解析

    主要介绍了java在hashmap初始化时赋初值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    java中hashmap容量的初始化实现

    主要介绍了java中hashmap容量的初始化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java中List与Map初始化的一些写法

    Java的在还没有发现新写法之前时,我一直是这么初始化List跟Map: //初始化List List list = new ArrayList(); list.add("string1"); list.add("string2"); //some other list.add() code…… list.add(...

    java7hashmap源码-AndroidOffer:只为帮助您获得更好的报价

    初始化传入的容量参数的值是就是 HashMap 实际分配的空间么 HashMp 的扩容机制是什么,什么时候扩容,每次扩多少 HashMap 的 get 过程是? HashMap 有什么缺点 谈谈你对再三列 rehash 过程的理解 多线程场景下如何...

    举例详解Java编程中HashMap的初始化以及遍历的方法

    主要介绍了Java编程中HashMap的初始化以及遍历的方法,是Java入门学习中的基础知识,需要的朋友可以参考下

    HashMap源码粗略解读(面试必问)

    initialCapacity表示的是初始化的容量,默认是1&lt;&lt;4(也就是16); loadFactor表示的是扩容因子,默认是0.75f(也就是面试常问的3/4) 为啥扩容因子默认是0.75f?(HashMap的源码翻译) 假如你创建HashMap的...

    HashMap的容量为什么必须是2的幂?

    如果我们使用指定初始化容量的实例构造函数,可以传入一个指定的值,但是实际HashMap在初始化底层存储数据的数组时,会使用一个大于等于指定值的2的幂的数作为数组的初始化容量。并且如果HashMap中元素的个数大于...

    阿里官方——嵩山《Java开发手册》

    线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理 成册,当前的版本是嵩山版。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅 是编程知识点,其它维度...

    java7hashmap源码-springcloud-one:第一个自搭建微服务

    答:HashMap的默认初始化长度是16,并且每次自动或者手动扩展初始化时所指定的长度必须是2的幂。 为什么是16? 答:是为了服务于key映射到index的Hash算法 HashMap是非线程安全的所有HashMap会很快 高并发下HashMap...

    面试官!你又双叒叕问HashMap!

    文章目录HashMap的数据结构(图解+源码分析)数组单链表HashMap如何插入数据(图解+源码分析pos)为什么初始化容量是2的倍数(源码分析)HashMap如何解决Key冲突(图解+源码分析)HashMap如何扩容(源码分析)...

    JDK8 内HashMap底层实现

    构造 首先来看下hashMap的构造方法 HashMap hashMap = new HashMap();...直接来看下hashMap的两个参数构造方法,在默认值初始化的时候,tableSizeFor控制着hashMap size的大小,具体的实现下看: public HashMap

    velcro:Rust的集合初始化宏

    一组宏,用于方便地初始化Rust的std和迭代器的集合。 所有的宏都支持一元..运算符,该运算符“传播”另一个集合或迭代器的值。 velcro::vec! 是std::vec!替代品std::vec! 。 支持std宏的所有功能而没有开销,但是...

    java7hashmap源码-java:Java

    java7 hashmap源码 Table Of Contents day01_JAVA语言概述与基本语法:标识符...day10_高级类特性2:初始化块、抽象类、interface接口、main方法、单例模式、模板方法设计模式 day11_高级类特性2:内部类、接口与抽象类

    Android的卡片视图

    class CartAdapter extends BaseAdapter { // 保存listview item的状态 HashMap, View&gt; map = new HashMap, View&gt;(); // 填充数据的list private ArrayList&lt;HashMap, Object&gt;&gt; ... // 初始化isSelected的数据

    literator:用于容器初始化和迭代器文字的Rust宏

    容器初始化 该库提供了一个宏,用于初始化任何实现容器。 #[macro_use] extern crate literator; use std :: collections :: HashMap; fn main () { let v: Vec &lt; _ &gt; = container! [ 1 , 2 , 3 ]; assert_eq! ...

    看完还不懂HashMap算我输(附职场面试常见问题)

    HashMap的原理与实现 版本之更迭: –》JDK 1.7 : Table数组+ Entry链表; –》JDK1.8 : Table数组+ ...DEFAULT_INITIAL_CAPACITY Table数组的初始化长度: 1 &lt;&lt; 4 2^4=16(为什么要是 2的n次方?) MAXIMUM_CAP

    Java集合教程吐血整理干货.md

    HashMap在我当前的jdk版本(11)的默认容量为0,在第一次添加元素的时候才初始化容量为 16, 之后才扩容为原来的2倍。 HashMap的扩容是根据 threshold决定的 : threshold = loadFactor * capacity。 当 size 大于 t

    大数据面试题.pdf

    原⼦性、⼀致性、唯⼀性 1-3)java 的io类的图解 1-4)对象与引⽤对象的区别 对象就是好没有初始化的对象,引⽤对象即使对这个对象进⾏了初始化,这个初始化可以使⾃⼰的直接new的也可以是直接其他的赋值的, 那么...

    《〈Java开发手册(泰山版)〉灵魂13问》.zip

    为什么阿里巴巴建议初始化HashMap的容量大小?15 Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?27 为什么阿里巴巴禁止使用Executors创建线程池?31 为什么阿里巴巴要求谨慎使用ArrayList中的...

    面试灵魂13问.zip

    为什么阿里巴巴建议初始化 HashMap 的容量大小? 15 Java 开发手册建议创建 HashMap 时设置初始化容量,但是多少合适呢? 27 为什么阿里巴巴禁止使用 Executors 创建线程池? 31 为什么阿里巴巴要求谨慎使用 ...

Global site tag (gtag.js) - Google Analytics