首页 > 其他分享 >哈希表理论基础——学习笔记

哈希表理论基础——学习笔记

时间:2023-04-12 22:23:04浏览次数:41  
标签:Map key HashSet 笔记 学习 map 哈希 TreeSet

  1. 常见的三种哈希结构
    • 数组
    • set (集合)
    • map(映射)
  2. HashSet
  • 特点: HashSet 无序 (没有下标) ,不可重复
  • HashSet 为 HashMap 的 key 部分
  1. TreeSet
  • TreeSet 无序 (没下标) ,不可重复,但是可以排序
  • TreeSet 为 TreeMap 的 key 部分
  1. map
    1. Map 和 Collection 没有继承关系
    2. Map 以(key ,value) 的形式存储数据: 键值对key 和 value 存储的都是对象的内存地址 (引用)
    3. Map 接口常见方法
      img
    • 注意:Map.Entry<K, V>是Map的一一个接口。接口中的内部接口默认是public static的。
  2. 总结
    1. 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。
    2. 哈希法是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。
  3. 哈希函数通过夜店的编码方式,可以将数据个数转化为不同的数值,映射为哈希表上的索引数字。
  4. 哈希碰撞是不同的数据同时映射到哈希表的同一个索引下标的位置。一般哈希碰撞有两种解决方法,拉链法和线性探测法。

标签:Map,key,HashSet,笔记,学习,map,哈希,TreeSet
From: https://www.cnblogs.com/benben-home/p/17259565.html

相关文章

  • 383.赎金信——学习笔记
    题目:给你两个字符串:ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。示例1:输入:ransomNote="a",magazine="b"输出:false示例2:输入:ransomNote="a......
  • 242.有效的字母异位词——学习笔记
    题目:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。示例1:输入:s="anagram",t="nagaram"输出:true示例2:输入:s="rat",t="car"输出:false提示:1<=s.length,......
  • java学习日记20230411-Vector
    VectorVector底层也是一个对象数组;Vector是线程同步的,即线程安全,Vector类的操作方法带有synchronized在开发中需要线程同步安全的,考虑使用VectorpublicclassVector01{//Vector线程安全publicstaticvoidmain(String[]args){Vector<Object>objects......
  • 【NLP开发】Python实现聊天机器人(OpenAI,开发指南笔记)
    1、开始使用1.1介绍OpenAIAPI几乎可以应用于任何涉及理解或生成自然语言或代码的任务。我们提供一系列具有不同功率水平的型号,适用于不同的任务,并能够微调您自己的定制模型。这些模型可用于从内容生成到语义搜索和分类的所有内容。提示和完成(Promptsandcompletions)compl......
  • java学习日记20230411-ArrayList
    ArraylList注意事项ArrayList可以加入null,并且多个;ArrayList是由数组来实现数据存储的ArrayList基本等同于Vector,处理ArrayList是线程不安全(执行效率高),在多线程情况下,不建议使用ArrayLIst  ArrayList示例publicclassArrayList01{publicstaticvoidmain(Stri......
  • 如何在2023年学习React
    在2023年学习React并不是一件容易的事情。自2019年ReactHooks发布以来,我们已经拥有了很多稳定性,但现在形势正在再次变化。而这次变化可能比使用ReactHooks时更加不稳定。在本文中,我想比较两种学习React的方式:以库的方式和以框架的方式。为了让事情更加清晰:React发布了新的文档,......
  • 二分图学习笔记
    定义>\(1.\)点数量\(\ge\)2>\(2.\)没有奇环二分图染色>深搜,0和1两种,相邻染不一样颜色,如果最后有冲突就不是二分图。二分图匹配>######定义>>没有\(2\)条边公用\(1\)个点>>--->>######极大匹配>>无法通过加边的方式增加匹配的数量>>--->>###......
  • Go微服务框架go-kratos实战学习08:负载均衡基本使用
    微服务框架go-kratos中负载均衡使用一、介绍在前面这篇文章负载均衡和它的算法介绍,讲了什么是负载均衡以及作用、算法介绍。go-kratos的负载均衡主要接口是Selector,它是一个可插拔的设计。因为它设计的都是接口,只要实现了接口就实现了负载均衡。go-kratos在目录下提供了......
  • Python程序笔记20230304
    抛硬币实验random模块importrandomrandom.randint(a,b)返回一个随机整数N,范围是:a<=N<=brandom.choice("ilovefishc")从"ilovefishc"这个字符串中随机选出一个字符。编写一个双色球的开奖模拟程序importrandomred=random.sample(range(1,34),6)blue=r......
  • 一份bat脚本的学习视频
    我想你会惊讶的发现?软件开发人员仅仅掌握编写代码的能力是远远不够的,你还必须掌握脚本编写的能力。我有一份windowsbat脚本教学视频,可以提供给大家。我相信掌握了这份bat视频的技能,你将会超越大部分开发人员,你离晋升之路有近了一步,因而你的工作和生活也会越来越好,对吧?如果你的答......