`
l4432848
  • 浏览: 253306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

哈希集合

    博客分类:
  • java
 
阅读更多

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

哈希集合:

介绍:这个集合它的查找速度是比较快的
arrayList添加的速度大概是2秒,检索速度大概是12秒,而hash集合的添加大概是5秒,检索速度大概是9毫秒,这就说明hash 的检索速度是非常快的,hash 的好处就是检索速度快,因为它添加数据的时候就早就做好你要检索的准备

image

它的原理就是:如下图,如果陆陆续续的加入数据到这个方法中,那它存储的方式就是,首先有个数组,你要查找D的话,首先找到hashCode值,然后取模10,取出来下标是6就马上定位到那里去,它拿的是hashCode值来%10,如果能整除10就是0,如果不能就是1到9之间的余数

image

比方说有序集合的检索就是,你要查找D在哪你要一个个问,这种效率就很低,而hash集合检索的方式不跟这些一样

image

Hash重复是什么意思?
如下图:比方说ABCDEF的存储,存储长度分为四格,存储的时候ABCD都存储进去了,假如那存储E的时候计算存储到B的那个位置,而那里是有值的,那不可能把以前的值冲掉的,那它就想到了单链形式,在B的下面挂一个E,假设F也在B的那个位置,那就挂在E的下面,单链解决hash重复的问题

image

重组是什么意思?
如下图:数据量大的话就形成单链挂在这,挂得多了数据量就大了,数据量大的话检索就慢起来了,要一个个问,那就很麻烦了,所以要扩容重组

image

0
0
分享到:
评论

相关推荐

    LeetCode 705. 设计哈希集合

    哈希集合,也称为哈希表或散列表,是一种数据结构,它提供了快速的插入、删除和查找操作。在LeetCode 705这道题目中,我们需要设计一个哈希集合,但不允许使用内置的哈希表库。下面将详细讨论如何实现这个哈希集合...

    java集合类线程安全.doc

    实现该接口的集合类包括三个通用实现类哈希集合类、树集合类和链接哈希集合类。 2. 列表接口 列表是一种有序的元素集合。实现该接口的集合类包括数组链表类和链接链表类。 3. 队列接口 队列是一种先进先出的数据...

    集合 和 哈希表的实例

    在编程领域,集合和哈希表是两种非常重要的数据结构,它们在处理数据组织和查找效率方面发挥着关键作用。本篇文章将深入探讨这两种数据结构的特性、用途以及实际编程中的应用实例。 首先,让我们从集合(Set)开始...

    219. 存在重复元素 II(set+滑窗)1

    解决这个问题的一个有效方法是结合使用哈希集合(Set)和滑动窗口的思想。哈希集合是一种不包含重复元素的数据结构,适合用来快速查找元素是否存在。滑动窗口则是一种处理数组或序列的方法,可以用来在固定大小的...

    SSD5---EX4

    1. **hashset.cpp**:这是一个C++源代码文件,很可能包含了实现哈希集合(HashSet)的数据结构和相关操作。哈希集合是一种高效的数据结构,用于存储不重复元素,它利用哈希函数快速查找和插入元素。在SSD相关的课程...

    数据结构进阶模板

    这些文件分别对应了哈希表、自旋平衡二叉搜索树(Splay Tree)和哈希集合这三种重要的数据结构。 首先,哈希表(HashMap)是一种基于键值对的数据结构,它的设计原理是通过哈希函数将键映射到数组的特定位置,实现...

    java基础知识Collection之哈希讲解和练习.rar

    Java中的Collection接口是一个非常强大的工具,它提供了许多不同类型的集合,包括哈希集合。哈希集合是一种不保持元素顺序的集合,它们使用哈希表实现。本资源是关于Java Collection之哈希集合的讲解和练习。

    C# 哈希算法集合类库

    "HashLib"是一个专为C#设计的哈希算法集合类库,它包含了多种常见的哈希算法,例如MD5(Message Digest 5)、SHA1(Secure Hash Algorithm 1)、SHA256、SHA384、SHA512、RIPEMD160、Whirlpool等。这些算法在不同的...

    php-leetcode题解之宝石与石头.zip

    要解决这个问题,我们可以使用哈希集合(HashSet)或者数组来存储宝石的每个字符,然后遍历石头字符串,检查每个字符是否在宝石集合中。以下是详细的解题步骤: 1. 初始化一个哈希集合,用于存储`gems`中的所有独特...

    C#和数据库开发,记录了我个人的笔记

    本笔记记录了C#和数据库开发相关的知识点,包括C#基础语法、字符串操作、数组和值类型、泛型列表、哈希表、哈希集合、布尔类型、switch语句、enum枚举、选择、循环、引用传递、面向对象基础、多线程、数据库Mysql、...

    窗口机制_java.zip

    然而,为了保持性能,实际解决方案可能结合了哈希集合和链表的优点,用哈希集合检测字符重复,用链表管理窗口的顺序。 总的来说,这个Java程序展示了如何运用滑动窗口和链表数据结构来解决字符串处理问题,这对于...

    rendezvous-hash:集合哈希(最高随机权重)的实现

    集合哈希(最高随机权重)的实现 安装 npm install rendezvous-hash 执行 分片权重由Truncate-32(MD5(shardId + '\0' + key )) ,解释为32位Little-Endian整数。 在将来的(不兼容的)发行版中,可能会用更简单,更...

    cpp-sparsemap一个高效hashmap和hashset的C实现

    本文将深入探讨一种名为cpp-sparsemap的实现,它是一个高效且轻量级的哈希映射(HashMap)和哈希集合(HashSet)的C++实现,主要由Tessil团队开发,并存储于Tessil-sparse-map-162cc7b版本的代码库中。 cpp-...

    AlgorithmPractice.zip

    在Objective-C中,我们可以使用一个哈希集合(例如`NSMutableSet`)来跟踪当前子串中的字符。哈希集合可以在常数时间内完成插入和删除操作,非常适合用于检查字符是否存在。另外,我们还需要两个指针,一个表示子串...

    编程语言(C++/Python/C#/javascript)中的数据结构——哈希映射

    有两种不同类型的哈希表:哈希集合(理解为set)和哈希映射(理解为dictionary)。 哈希集合是集合数据结构的实现之一,用于存储非重复值。 哈希映射是映射数据结构的实现之一,用于存储(key, value)键值对。 在标准模板...

    cpp-C哈希映射集合保留插入的顺序

    在C++编程中,哈希映射(HashMap)和集合(Set)是两种常用的数据结构。它们提供了快速的键值查找和元素存储功能。然而,标准库中的`std::unordered_map`和`std::unordered_set`并不保留元素的插入顺序,这可能会在...

    百度校园招聘笔试题-搜索研发类.pdf

    这个问题可以通过构建一个哈希集合(HashSet)来解决,哈希集合支持快速查找和插入操作,对于N个集合和M个TERM,我们可以将每个集合的TERM存储在一个哈希集合中,然后对输入的TERM数组进行遍历,检查是否存在包含...

    去除链表重复元素-Java 实现

    在Java中,去除单链表中的重复元素可以通过使用哈希集合(HashSet)来实现,该集合用于存储已经遍历过的元素。在遍历链表的过程中,我们将每个元素与集合中的元素进行比较,如果发现重复,则删除链表中的该元素。 ...

    python-leetcode面试题解之第340题至多包含K个不同的最长子串.zip

    1. 使用一个哈希集合(如Python的set)来存储窗口内的字符,初始时窗口包含从字符串起始位置到当前位置的所有字符。 2. 初始化两个指针,左指针`left`和右指针`right`,都指向字符串的起始位置,初始化最长子串长度...

    《算法导论》原版英文课件8

    接下来,课件证明了一个重要的定理:如果从通用哈希集合`H`中均匀随机地选择一个哈希函数`h`,并使用该函数将`n`个任意键映射到一个包含`m`个槽位的表中,则对于给定键`x`,其与其他键发生碰撞的期望次数小于`n/m`。...

Global site tag (gtag.js) - Google Analytics