导读:数据结构哈希表也称散列表,是一种键(key) 值(value)映射关系的数据结构。这种结构在java中是通过HashMap类实现的。接下来我们一起来学习这个类。
1.类核心成员
HashMap类底层原理是维护数组、单向链表、红黑树实现哈希表,该中核心成员分别是:
1.table是Node类型的数组
2.Node是单向链表
3.TreeNode是红黑树
package java.util;
public class HashMap extends AbstractMap
implements Map, Cloneable, Serializable {
transient Node[] table;//table是Node类型的数据
static class Node implements Map.Entry{} //单向链表
static final class TreeNode extends LinkedHashMap.Entry{} //红黑树
}
2.哈希表本质
在java8中,哈希表是HashMap类型的实例,这个实例本质是一个数组,数组元素是Node类型,或者是红黑树TreeNode。其中TreeNode是Node的派生类。在向这个数组添加数据的时候,Node与TreeNode会相互转换,从而降低时间复杂度。
//TreeNode继承LinkedHashMap类中内部类Entry
static final class TreeNode extends LinkedHashMap.Entry{}
//Entry继承HashMap类中内部类Node
static class Entry extends HashMap.Node