Java 集合系列 15 Map总结

12 篇文章 0 订阅

概述

第1 部分 Map 概述

第2 部分 内部哈希: 哈希映射技术

第3 部分 Map 优化

 3.1 调整实际大小

 3.2 负载因子

一、 Map 概述

2014071500001

Map“键值”对映射的抽象接口。该映射不包括重复的键,一个键对应一个值。

SortedMap有序的键值对接口,继承Map接口。

NavigableMap继承SortedMap,具有了针对给定搜索目标返回最接近匹配项的导航方法的接口。

AbstractMap实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。

Dictionary任何可将键映射到相应值的类的抽象父类。目前被Map接口取代。

TreeMap有序散列表,实现SortedMap 接口,底层通过红黑树实现。

HashMap是基于“拉链法”实现的散列表。底层采用“数组+链表”实现。

WeakHashMap基于“拉链法”实现的散列表。

HashTable基于“拉链法”实现的散列表。

二、 内部哈希: 哈希映射技术

  哈希映射技术是一种就元素映射到数组的非常简单的技术。由于哈希映射采用的是数组结果,那么必然存在一中用于确定任意键访问数组的索引机制,该机制能够提供一个小于数组大小的整数,我们将该机制称之为哈希函数。在Java中我们不必为寻找这样的整数而大伤脑筋,因为每个对象都必定存在一个返回整数值的hashCode方法,而我们需要做的就是将其转换为整数,然后再将该值除以数组大小取余即可。如下

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值