简介

  • HashMap是采用链表和位桶来来实现的,由于一个位桶存在元素太多会导致get效率低,因此在jdk1.8中采用的红黑树实现,当链表长度大于TREEIFY_THRESHOLD(值为8)时会转换为红黑树来提高查询效率。

  • HashMap是一种以键值对存储的框架,它是Map的实现类,提供了Map的基础操作,与HashTalbe不同的是HashMap不是线程安全的,key和value都是允许为null的;另外hashmap存储的内容顺序会变化的。

  • HashMap对与get和put操作提供了相对稳定的性能;如果注重Iteration迭代集合的性能,则不能设置初始化容量(capacity)太高或者负载因子(load factor)太低。影响HashMap性能的两个重要参数是初始化容量(initial capacity)和负载因子(load factor),初始化容量是至哈希表在创建时候的桶(bucket)的个数,负载因子是当哈希表放满的时候进行的增量系数,默认为0.75。

  • HashMap默认是线程不安全的 ,如果需要同步需要通过Cllections工具类进行包装:Map m = Collections.synchronizedMap(new HashMap(...));

示意图

纯手工画的,请容忍_! 

关系图

使用示例

        		

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式