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

深圳租赁住房和建设局网站自媒体代运营

深圳租赁住房和建设局网站,自媒体代运营,兰州网络营销网站,慧聪网seo页面优化LinkedHashMap是HashMap的子类#xff0c;上一节初步分析过HashMap#xff0c;这一节分析LinkedHashMap。 LinkedHashMap的数据结构 Entry LinkedHashMap的Entry继承自HashMap的Node#xff0c;除了Node的数据结构之外#xff0c;增加了before、after#xff0c;所以我们…LinkedHashMap是HashMap的子类上一节初步分析过HashMap这一节分析LinkedHashMap。 LinkedHashMap的数据结构 Entry LinkedHashMap的Entry继承自HashMap的Node除了Node的数据结构之外增加了before、after所以我们可以猜测到LinkedHashMap的Entry应该是双向列表结构 static class EntryK,V extends HashMap.NodeK,V {EntryK,V before, after;Entry(int hash, K key, V value, NodeK,V next) {super(hash, key, value, next);}}此外LinkedHashMap定义了首节点和尾结点 transient LinkedHashMap.EntryK,V head;/*** The tail (youngest) of the doubly linked list.*/transient LinkedHashMap.EntryK,V tail;table数组 继承自HashMap,没有变化 数据依然保存在table数组中不同的是table中的对象变成了Entry。 ###LinkedHashMap的初始化 与HashMap的初始化方式、以及涉及到的容量、装载因子、扩容阈值等概念基本相同。 不过增加了一个概念accessOrderjavadoc的解释是定义遍历访问顺序当值为true时按照访问顺序排序值为false则按照插入顺序排序。 /*** The iteration ordering method for this linked hash map: tttrue/tt* for access-order, ttfalse/tt for insertion-order.** serial*/final boolean accessOrder;LinkedHashMap赋值 LinkedHashMap的赋值逻辑如下假设待存放的数据为ekey1,value1 检查table数组为空的话初始化指定容量或者默认容量的table数组根据key1的哈希值计算得出算法为容量 - 1 hash(key1)对应的桶。这一步很重要一般来讲优秀的hash算法能够尽可能确保不同的key值得到不同的hash值也就可以确保放入不同的桶内。但是不可避免的可能会存在不同key值得到相同hash值的情况hash冲突key1key2,hash(key1)hash(key2)这种情况下就会放置在相同的桶比如table[5]内。得到桶之后判断桶内是否已经有数据。没有数据则直接新建一个NodenewNode(hash, key1, value1, null)放在桶中结束LinkedHashMap新建的Node是他的Entry对象所以创建对象的过程与HashMap的略有不同创建的是双向链表通过before、after首尾相连并在创建的过程中指定LinkedHashMap的head和tail。否则桶内有数据有两种情况一是为键值key1重复赋值、二是hash冲突。如果是hash冲突则new一个NodenewNode(hash, key1, value1, null)并将其设置为桶内的最后一个Node。如果是重复赋值桶内数据的key值key1则为key1重新赋值value1并返回key1的旧值 与HashMap的赋值过程基本相同不同之处在于除了将数据分配在hash桶之外同时按照存储数据的先后顺序创建双向链表。 从LinkedHashMap获取数据 LinkedHashMap通过key值获取数据的逻辑与HashMap的完全一致 通过getkey方法获取数据的逻辑如下假设要获取的数据keykey1 table数组不为空并且数组长度大于0则采用与put数据相同的算法得到key1值对应的桶。桶内不空则从第一个节点开始检查如果节点key值等于key1则返回该节点的value。如果第一个节点不满足条件则依次检查桶内所有其他节点。桶内空或者桶内不空但是没有找到满足条件的对象应该不可能则返回null表明当前HashMap中不存在key值为key1的对象 所以我们可以看到正如名称给我们的启示一样LinkedHashMap与HashMap的区别就是多了一个链表 我们知道LinkedHashMap能够确保按照存储顺序获取数据而HashMap遍历到的数据是随机的下次我们就具体分析一下其底层原因。
http://www.dnsts.com.cn/news/258177.html

相关文章:

  • 中英文切换网站自己做微信优惠券需要网站
  • 企业为什么建设网站网络营销软件站
  • 建设一个返利网站北京房山网站建设产品更新培训
  • 长春个人做网站哪家好网络运营课程培训视频
  • 期货贵金属网站源码建设网站架构设计英文翻译
  • 某企业集团网站建设方案论文网上挣钱最快的平台
  • 购物网站项目经验织梦网站一排4张图片
  • 网站设计)北京互联网营销公司
  • 西部数码网站模板forpress wordpress wp另类
  • 手机网站开发免费视频教程关键词排名点击软件怎样
  • 泰和县建设局网站做网站的是不是程序员
  • 英语营销型网站建设网站建设协议合同范本
  • 电商网站设计实例博达高校网站群建设教程
  • 外贸网站制作教程安监网站如何做紧急预案备案
  • 池州市建设管理处网站对网站建设起到计划和指导的作用
  • 做seo推广手机网站免费网站建设itcask
  • 网站设计的灵感来源免费网络电视直播软件
  • 个人网站设计背景图企业信息网站模板
  • 网站个人中心设计深圳到北京
  • 在网站建设上的发言总结服务型网站有哪些
  • 网站备案为什么 没有批复文件做ppt用的音效网站
  • 零基础学做网站教程广东在线网站建设
  • 网站开发合同范本下载网站建设的
  • 在本地做改版如何替换旧网站会影响百度收录吗国家大事新闻近三天
  • 百度竞价是什么工作网站整站优化推广方案
  • 与铁路建设相关的网站网站建设服务方案ppt模板
  • 如何查看网站的建设方式分销系统大概多少钱
  • 最新电大网站开发维护嘉定网站建设电脑培训
  • 常州网站建站公司熊猫seo实战培训
  • 北京做网站建设多少钱北京专业网站设计公司