美文网首页
哈希表概述

哈希表概述

作者: 仲达_dc6c | 来源:发表于2018-12-04 11:08 被阅读0次

数组的优点是能够快速的查询

链表的优点是快速的插入和删除

将这数组和链表的有点结合到一起,就出现了哈希表。

哈希表由两个部分组成

hash函数:哈希表能否快速定位,很大程度就是取决于hash函数,hash函数的好坏决定了哈希表的性能。

hashTable:存放数组的表,就是hashtable。

不同的key,经过hash函数之后,寻址出来的位置可能是同一个,在hashtable的同一个位置,就是产生了冲突,JDK1.8之前解决冲突的办法是在数组的位置,放了一个链表,就是拉链法。JDK1.8之后,当链表的个数达到阈值之后,在当前的数组位置放了一个红黑树,红黑树的定位比链表更快。

装填因子:

它是hash函数和数组的大小,产生冲突的解决方案。因为数据越是接近数组的大小,越容易产生冲突,产生冲突就越多,装填因子可以自己进行设定,0.75 0.8都可以。

缺点:

扩容的时候,需要重新计算,重新hash计算每个节点,在新的hashtable中的位置。

应用:

微信通讯录,电话号码,QQ的好友数量都是有上限的。

什么样的哈希表是最好的?

没有冲突的哈希表最好,如果有冲突,每个数组下面的原数个数一样多。

相关文章

  • 哈希表概述

    数组的优点是能够快速的查询 链表的优点是快速的插入和删除 将这数组和链表的有点结合到一起,就出现了哈希表。 哈希表...

  • 哈希表查找概述

    0.前言 本节内容如下:1.散列表查找定义2.散列函数的构造方法3.处理散列冲突的方法4.散列表查找算法实现5.S...

  • 算法训练营第二周总结(精辟要点)

    一、概述 这周主要学习了哈希表、映射、集合、树、二叉树、二叉搜索树、泛型递归、树的递归 二、哈希表 哈希表: 也叫...

  • LinkedHashMap原理分析

    一、概述 LinkedHashMap是通过哈希表和链表实现的,它通过维护一个链表来保证对哈希表迭代时的有序性,而这...

  • Hash表的简单理解

    哈希表概述: Objective-C 中的字典NSDictionary底层其实是一个哈希表,实际上绝大多数语言中字...

  • 聊聊哈希表

    概述 哈希表名字源于 Hash,也可以叫作散列表。哈希表是一种可以根据键(Key)直接访问数据在内存储存位置的数据...

  • Java集合:HashMap源码剖析

    非常推荐Java集合:HashMap源码剖析 1.HashMap概述     HashMap基于哈希表的 Map ...

  • Java数据结构_哈希表_基本概念

    本文目标 哈希表的基本概念,哈希冲突,哈希函数 什么是哈希表 哈希表也叫做散列表(hash有剁碎的意思)哈希表是空...

  • HashMap、HashSet、HashTable、Linked

    HashMap 实现原理 HashMap 概述 HashMap 是基于哈希表的 Map 接口非同步实现,允许使用 ...

  • 关于HashMap你必须了解的知识

    HashMap概述   HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像...

网友评论

      本文标题:哈希表概述

      本文链接:https://www.haomeiwen.com/subject/ctcmcqtx.html