散列表 / Hash Table 散列表与散列函数 散列表是一种将关键字映射到特定数组位置的一种数据结构,而将关键字映射到0至TableSize-1过程的函数,即为散列函数. Hash Table: [0] -> A [1] -> B [2] -> C [3] -> D [4] -> E 下面以一个简单的散列函数 Hash(Key)=Key mod TableSize为例,完成一个散列表的实现. Note: 为方便起见,这里选用了一个非素数作为TableSize,适宜的Tab
一.前言 本文由jdk1.8源码整理而得,附自制jdk1.8底层数据结构图,并截取部分源码加以说明结构关系. 二.jdk1.8 HashMap底层数据结构图 三.源码 1.散列表(Hash table,也叫哈希表): /** * The table, initialized on first use, and resized as * necessary. When allocated, length is always a power of two. * (We also tolerate l
散列表,又名哈希表.Hash表.这是一个神奇的数据结构,它的复杂度是常数级别,由于我非常喜欢这个数据结构,在此简单介绍一下. (没有学过Hash表的同学,我推荐一个教程:http://www.cnblogs.com/jiewei915/archive/2010/08/09/1796042.html) 让我们回忆一下之前学过的数据结构,列个表,与Hash表做个比较(表中c表示常数): 插入时间 删除时间 查找时间 编程复杂度 信息剖析度 无序数组 1 N N ☆ ☆ 有序数组 N N logN