资讯专栏INFORMATION COLUMN

一、Node

lookSomeone / 384人阅读

摘要:我们知道,在各类查找方式中,哈希查找的时间复杂度是最小的因为这种方式并不需要遍历,而是直接计算出数据存储的位置,当然在中依然继承了这种优点。但是,在中的使用也提升了存取速度。这是源代码中对数组的定义。

我们知道,在各类查找方式中,哈希查找的时间复杂度是最小的O(1),因为这种方式并不需要遍历,而是直接计算出数据存储的位置,当然在hashmap中依然继承了这种优点。但是,在hashmap中node的使用也提升了存取速度。
这是源代码中对table数组的定义。

transient Node[] table;

我们发现,table是一个Node类型的数组,而Node实现了Map的Entry接口,也就是说,它将一条记录和他的关键字绑定在了一起,我们可以通过一个node对象直接获取一对键值对的键和值,而不需要逐个遍历对比来查找他的值

static class Node implements Map.Entry {
    final int hash;   //该键值对的哈希值
    final K key;     //键
    V value;        //值
    Node next; //指向下一对键值对,实现链式
    Node(int hash, K key, V value, Node next) {
        this.hash = hash;
        this.key = key;
        this.value = value;
        this.next = next;
    }
    public final K getKey()        { return key; }
    public final V getValue()      { return value; }
    public final String toString() {… }
    public final int hashCode() {…}
    public final V setValue(V newValue) {… }
    public final boolean equals(Object o) {…}
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69985.html

相关文章

  • 二叉树的实现

    摘要:概念二叉树是另一种树型结构,它的特点是每个结点至多只有两棵子树即二叉树中不存在度大于的结点,并且,二叉树的子树有左右之分其次序不能任意颠倒。查找最大值查找最小值思路传入二叉树,寻找左子树,直到找到不存在左子树的节点。 概念 二叉树(Binary Tree)是另一种树型结构,它的特点是每个结点至多只有两棵子树(即二叉树中不存在度大于 2 的结点),并且,二叉树的子树有左右之分(其次序不能...

    shengguo 评论0 收藏0
  • javascript数据结构学习笔记

    摘要:数据结构数组方法一数组添加元素开头插入尾部删除头部删除数组合并迭代器方法会迭代数组中每个元素,直到返回。这个数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中。散列算法的作用是尽可能快的在数据结构中找到一个值。 数据结构 数组 方法 //一、数组 var arr = []; // 添加元素 arr.push(1, 2); // [1,2] // 开头插入 arr.u...

    mingde 评论0 收藏0
  • 说说JavaScript中DOM的Node对象

    摘要:对象对象的概念首先了解一下对象怎么用。对象是解析节点树结构的主要入口。继承链关系对象是继承于对象的,是一个用于接收事件的对象。代码示例的标准规范中的对象和对象都是继承于对象的。属性对象的属性用于获取指定的节点名称。参数表示要删除的节点。 Node对象 Node对象的概念 首先了解一下Node对象怎么用。DOM的标准规范中提供了Node对象,该对象主要提供了用于解析DOM节点树结构的属性...

    Batkid 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<