关闭

HashSet源码解析

HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成。HashSet的源...
阅读(707) 评论(0)

HashMap源码解析——get方法

public V get(Object key) { Node e; return (e = getNode(hash(key), key)) == null ? null : e.value; }getNode()方法 final Node getNode(int hash, Object key) { Node...
阅读(9716) 评论(0)

HashMap源码解析——put方法

public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }先看hash(key)函数。它是通过key的hashCode值计算hash码。//计算hash值的方法 通过键的hashCode来计算static final int hash(Object key) {...
阅读(999) 评论(0)

HashMap源码解析——构造方法

上篇博文列取了HashMap的关键属性,本篇主要看构造方法HashMap的几个构造方法: 补充下//加载因子 static final float DEFAULT_LOAD_FACTOR = 0.75f; //容量 static final int MAXIMUM_CAPACITY = 1 << 30; static final int MIN_TREEIFY_CAPACITY = 6...
阅读(1301) 评论(0)

HashMap源码解析——关键属性

HashMap类中的一些关键属性:ttransient Node[] table;//存储元素的实体数组 transient int size;//存放元素的个数 int threshold; //临界值 当实际大小超过临界值时,会进行扩容threshold = 加载因子*容量 final float loadFactor; //加载因子 transient int modCount;...
阅读(1122) 评论(0)

HashMap源码解析——概述

HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。  值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchro...
阅读(9865) 评论(0)
    个人资料
    • 访问:448168次
    • 积分:3729
    • 等级:
    • 排名:第8661名
    • 原创:29篇
    • 转载:19篇
    • 译文:0篇
    • 评论:4条
    文章分类
    文章存档
    最新评论