当前位置: 首页 > news >正文

外贸网站建设网页网站入口百度

外贸网站建设网页,网站入口百度,做信息网站怎么赚钱,天津泰达建设集团网站HashSet集合底层采取哈希表存储数据 哈希表是一种对于增删改查数据性能都较好的结构 hashCode方法和equals方法的配合流程 当添加对象的时候,会先调用对象的hashCode方法计算出一个应该存入的索引位置,查看该位置上是否存在元素 不存在:直接存…

HashSet集合底层采取哈希表存储数据

哈希表是一种对于增删改查数据性能都较好的结构

hashCode方法和equals方法的配合流程

当添加对象的时候,会先调用对象的hashCode方法计算出一个应该存入的索引位置,查看该位置上是否存在元素

     不存在:直接存

     存在:调用equlas方法比较内容

                 false:存

                 true:不存

 @Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age && Objects.equals(name, student.name);}@Overridepublic int hashCode() {return Objects.hash(name, age);}

hashCode方法介绍

哈希值

是JDK根据某种规律算出来的int类型的整数

hashCode方法改造

重写hashCode方法

根据对象的属性值计算出的哈希值

Hashset原理解析

Hashset的添加过程

底层结构:哈希表(数组,链表,红黑树的结合体)

1.创建HashSet集合,内部会存在一个长度为16个大小的数组

2.调用的添加方法,会拿着对象的hashCode方法计算出应存入的索引位置(哈希值%数组长度)

3.判断索引位置元素是否是null

                         是:存入         不是:说明有元素,调用equals方法比较内容

对哈希值扰动,进行二次哈希操作,可以一定程度的减少链表挂载的数量

如何能够提高查询性能?

1.扩容数组

       扩容数组的条件:

A:当数组中的元素个数达到16*0.75(加载因子)=12

                                    扩容原数组2倍的大小

B:链表挂载的元素超过8(阈值)个,并且数组长度没有超过64

2.链表转红黑树

链表挂载的元素超过了8(阈值)个,并且数组长度到达了64

总结:

1.set集合的底层原理是什么样的

JDK8之前,哈希表:底层使用数组+链表组成

JDK8之后,哈希表:底层采用数组+链表+红黑树组成

2.哈希表的详细流程

    1.创建一个默认长度16,默认加载因子为0.75的数组,数组名table

    2.根据元素的哈希值跟数组的长度计算出应存入的位置

    3.判断当前位置是否为null,如果是null直接存入,如果位置不为null,表示有元素,则调用equals方法比较属性值,如果一样,则不存,如果不一样,则存入数组

    4.当数组存满到16*0.75=12时,就会自动扩容,每次扩容原先的两倍

    5.当链表挂载元素超过8个(阈值)

             检查数组长度:

                             没有到达64,扩容数组

                             到达了64,会转换为红黑树

 

http://www.hkea.cn/news/110084/

相关文章:

  • vps 网站上传网站seo优化是什么意思
  • wordpress cos腾讯云seo网站优化收藏
  • 鹤岗商城网站建设免费域名申请
  • 江苏三个地方疫情严重抖音视频排名优化
  • 竞价排名广告东莞关键词排名快速优化
  • 做视频网站要什么格式好网络营销公司怎么注册
  • 企业专业网站建设快速网站搭建
  • 武威建设网站的网站google谷歌搜索
  • 长沙公司做网站多少钱推广平台怎么做
  • 现在大家做电商网站用什么源码营销策略都有哪些
  • 可以做试卷的网站英语怎么说seo关键词排名优化系统源码
  • 网站怎么设置支付功能企业网站的主要类型有
  • 成都圣都装饰装修公司北京搜索优化排名公司
  • 境外建设网站贴吧互联网域名注册查询
  • 广州建站工作室淘客推广怎么做
  • 中国最大的网站建设公司百度广告联盟点击一次多少钱
  • wordpress单页主题营销seo手机关键词网址
  • dedecms做电影网站韩国最新新闻
  • 哪个网站做废旧好如何在百度上发布自己的广告
  • 网站表单及商品列表详情模板如何搭建自己的网站
  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具