HashMap和HashSet的详解

       注意:HashMap和HashSet的常用方法和TreeMap和TreeSet是一样的,不过是他们实现的底层原理是不一样的,HashMap和HashSet的底层原理是哈希表结构,这种结构与搜索树或者红黑树来说效率更高,因此在平时使用是我们通常使用Hash而非Tree。

      但是哈希表结构也有缺陷:哈希冲突。

      哈希冲突是无法避免的,我们能做的只有不断地减小哈希冲突所带来的影响,因此我们有一些方法去减小哈希冲突。

      哈希表概念:

     顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键 码的多次比较。

     顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( ),搜索的效率取决于搜索过程中 元素的比较次数。

     理想的搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函 数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快 找到该元素。

     当向该结构中: 插入元素 根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放 搜索元素 对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若 关键码相等,则搜索成功 该方式即为哈希(散列)方法,哈希方法中使用的转换函数称为哈希(散列)函数,构造出来的结构称为哈希表(Hash Table)(或者称散列表).

   HashMap和TreeMap以及TreeSet和TreeSet的使用方法是一样的。

      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/15051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

urllib_post请求_百度翻译

打开百度翻译,并打开控制台,输入spider,然后在网络中找到对应的接口,可以看出,该url是post请求 在此案例中找到的接口为sug,依据为: 可以看到,传递的数据为kw : XXX, 所…

[Linux]服务管理

一.服务的概念,状态,查看系统服务 服务(service)本质就是进程 如(mysqld,sshd 防火墙等) 是运行在后台的,通常都会监听某个端口,等待其它程序的请求 -------比如mysqld,防火墙等,因此我们又称为…

【for循环解决问题】

for循环 #include<stdio.h> int main(){for(定义循环变量&#xff1b;循环次数&#xff1b;循环条件){//循环操作}return 0; } 我们用作业实践一下 作业&#xff1a; 输入4个整数 要求后三个数都小于第一个数 判断第四个数在不在中间两个数的范围内&#xff08;不包…

3D瓦片地图组件上线|提供DEM数据接入,全方位呈现三维地图地形!

在用户调研中&#xff0c;我们了解到很多用户自身的可视化项目&#xff0c;需要在垂直空间上表现一些业务&#xff0c;例如&#xff1a;3D地形效果&#xff0c;数据底板建设等&#xff0c;而传统的地图效果不满足此用户需求。瓦片地图能够无限加载大地图&#xff0c;以更三维的…

【Linux】在Ubuntu 16.04上安装Gerrit + PostgreSQL + Apache服务

Gerrit是一个基于Git版本控制系统的运行于Web浏览器上的Code Review工具&#xff0c;本文叙述如何在Ubuntu 16.04上安装Gerrit服务。&#xff08;当然安装Gerrit的方法有很多&#xff0c;本文只是其中之一&#xff09; 文章目录 前提安装PostgreSQL数据库并创建用户下载、配置和…

【飞舞的花瓣】飞舞的花瓣代码||樱花代码||表白代码(完整代码)

关注微信公众号「ClassmateJie」有完整代码以及更多惊喜等待你的发现。 简介/效果展示 这段代码是一个HTML页面&#xff0c;其中包含一个canvas元素和相关的JavaScript代码。这个页面创建了一个飘落花瓣的动画效果。 代码【获取完整代码关注微信公众号「ClassmateJie」回复“…

MySQL什么时候 锁表?如何防止锁表?

锁表会带来一系列问题&#xff0c;影响数据库的性能和系统的稳定性。 主要是下面的四个问题&#xff1a; 性能问题、死锁问题、可用性问题、一致性问题 1. 锁表带来的性能问题 锁表会阻止其他事务对该表的并发访问&#xff0c;包括读操作和写操作。 锁表会导致严重的性能问…

一步将 CentOS 7.X 原地升级并迁移至 RHEL 7.9

《OpenShift / RHEL / DevSecOps 汇总目录》 在《在离线环境中将 CentOS 7.X 原地升级并迁移至 RHEL 7.9》一文中为了实现从 CentOS 7.X 原地升级并迁移至 RHEL 7.9&#xff0c;我们第一步先将一个测试环境 CentOS 7.5 升级到 CentOS 7.9&#xff0c;然后在第二步使用 convert2…

Golang gin框架中间件c.JSON返回结果后终止返回

gin框架中间件c.JSON返回结果后还是会继续执行之后的方法&#xff0c;我们可以用c.Abort()来终止后续的处理 func MiddlewareFunction(c *gin.Context) {// 假设有某种条件下需要返回错误if someCondition {c.JSON(http.StatusBadRequest, gin.H{"error": "som…

Java8lambda和Java8Stream

匿名函数 为了简化Java中的匿名内部类 事件监听 写一个类 实现ActionListener 接口&#xff08;外部类&#xff09; 内部类 Lambda 表达式是一个匿名函数&#xff0c;我们可以把 lambda 表达式理解为一段 可以传递的代码&#xff08;将代码段像数据一样传递&#xff09;。使…

机器学习实验------softmax回归

第1关:softmax回归原理 任务描述 本关任务:使用Python实现softmax函数。 #encoding=utf8 import numpy as npdef softmax(x):input:x(ndarray):输入数据,shape=(m,n)output:y(ndarray):经过softmax函数后的输出shape=(m,n)#********* Begin *********#x -= np.max(x, axis …

C++的模板(七):左值强制类型转换

C中有个特殊指针类型&#xff0c;就是指向数据成员的指针。这个数据成员的指针是可以提取出来的。如: class Whatever { public:int x;int z; };int Whatever::*mp; mp &Whatever::x;如果数据的访问权限是private&#xff0c;则这样不可以。但可以通过模板的办法挑出来&…

抖音运营_如何开抖店

截止20年8月&#xff0c;抖音的日活跃数高达6亿。 20年6月&#xff0c;上线抖店 &#xff08;抖音官方电商&#xff09; 一 抖店的定位和特色 1 一站式经营 帮助商家进行 商品交易、店铺管理、客户服务 等全链路的生意经营 2 多渠道拓展 抖音、今日头条、西瓜、抖音火山版…

科兴未来|2024年诸暨市海内外高层次人才创业大赛

为深入实施人才强市、创新强市首位战略,加快人才链、产业链、创新链深度融合,努力开创“诸才云集”生动局面,奋力打造新时代共同富裕新高地,高水平谱写社会主义现代化建设诸暨篇章,推动诸暨实现高水平建设&#xff0c;构建全新人才创业创新生态体系&#xff0c;助力人才流入诸暨…

【Python】用于发送电子邮件的标准库smtplib和构建邮件主体、添加附件、设置收件人的email

欢迎来到《小5讲堂》 这是《Python》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 插件介绍邮件代码扩展知识点文章推荐 插件介绍 smtplib 是 Pytho…

海外媒体发稿的关键步骤和投稿策略:如何撰写高质量的新闻稿?国外软文发布平台有哪些?

发布国外新闻稿件是一个涉及多步骤的过程&#xff0c;旨在确保您的新闻稿能够有效覆盖目标受众。以下是一些关键步骤和实用的技巧&#xff0c;帮助你实现海外媒体发稿。 1. 明确目标和受众 首先&#xff0c;明确您发布新闻稿的目标&#xff0c;是为了增加品牌曝光、推出新产品…

惊呆了!企业数字化转型竟如工厂生产?

在众多使用蚓链数字化生态系统解决方案实现数字化转型的企业&#xff0c;你能想象吗&#xff1f;如今的企业数字化转型&#xff0c;就如同一家工厂的生产过程&#xff01;数据成为了原材料&#xff0c;而数据资源则是场景化的零件&#xff0c;最终生产出满足市场需求的数据产品…

基于Kafka的日志采集

目录 前言 架构图 资源列表 基础环境 关闭防护墙 关闭内核安全机制 修改主机名 添加hosts映射 一、部署elasticsearch 修改limit限制 部署elasticsearch 修改配置文件 启动 二、部署filebeat 部署filebeat 添加配置文件 启动 三、部署kibana 部署kibana 修…

2024-5-24

今日安排&#xff1a; 继续审计 nf_tables 源码 && iptables 相关学习♥♥♥♥♥复现 CTF 相关题目♥♥♥♥学习 winpwn♥♥♥♥mount 的使用&#xff0c;学习 namespace (昨昨昨昨昨昨昨昨昨昨昨昨昨昨天残留的任务)&#xff08;&#xff1a;看我能搁到什么时候♥♥♥…

21-信号集处理函数

屏蔽信号集 屏蔽某些信号 手动自动 未处理信号集 信号如果被屏蔽&#xff0c;则记录在未处理信号集中 非实时信号&#xff08;1~31&#xff09;&#xff0c;不排队&#xff0c;只留一个实时信号&#xff08;34~64&#xff09;&#xff0c;排队&#xff0c;保留全部 信号集…