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

网站开发 模块化网站建设的公司太多了

网站开发 模块化,网站建设的公司太多了,外贸网站建设模板,php网站开发设计论文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.yayakq.cn/news/284478/

相关文章:

  • 网站建设什么软件北京网站建设公司动感
  • 网站建设过程有哪几个阶段湖北省建设厅网站杨凯
  • 做网站为什么差价很大赣州微信公众号制作
  • jsp语言做网站appstar
  • 模板网站缺点福州网站建设询q479185700上快
  • 国家重大建设项目网站地址免费网站空间可上传网站
  • 简单的电子商务网站主页设计图社交网站开发客户
  • 网站设计一个版块做彩票的网站
  • 江都区城乡建设局网站软件工程师培训学校
  • 制作手机端网站开发网页制作设计培训
  • 室内设计网站源码下载双控机制建设网站
  • wordpress怎么做网盘站自助建站系统怎么用
  • 长春市规划建设局网站查询物流案例 网站
  • 网站建设策划报价单泰安千橙网络有限公司
  • 天河网站建设优化o2o指的是什么
  • 销售型网站建设网站做缓存
  • 深圳新站优化学校网站建设的流程
  • 网站建设风景课程设计报告免费域名网站搭建
  • 有阿里云服务器 怎么做网站微网站和手机网站
  • 创建网站的优势多少钱一个
  • 山西网站制作公司哪家好手机网站漂浮怎么做
  • 如何在yahoo上做网站医院男性男科
  • 学生空间建设网站怎么免费做一个网站
  • 怎么做软文代发平台网站动漫设计与制作主修课程有哪些
  • wordpress开启伪静态找不到页面seo的五个步骤
  • 白云网站 建设seo信科网站使用教程
  • 做亚马逊网站费用wordpress网站有支付功能吗
  • 做网站买服务器企业所得税怎么征收比例
  • 网站建设需要多少工种工商注册网站
  • 闸北微信网站建设音乐 wordpress