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

郑州好的网站建站go语言可以做网站吗

郑州好的网站建站,go语言可以做网站吗,优惠券购物网站怎么做,免费站推广网站链接LinkedHashMap 是 Java 中的一种有序 Map#xff0c;它扩展了 HashMap#xff0c;提供了有序的元素存储方式。在 LinkedHashMap 中#xff0c;元素的有序性可以按照插入顺序或访问顺序来维护#xff0c;而这个有序性是通过维护一个双向链表来实现的#xff0c;这也是实现 …LinkedHashMap 是 Java 中的一种有序 Map它扩展了 HashMap提供了有序的元素存储方式。在 LinkedHashMap 中元素的有序性可以按照插入顺序或访问顺序来维护而这个有序性是通过维护一个双向链表来实现的这也是实现 LRU Cache 功能的基础。在接下来的源码解析中我们将深入探讨 LinkedHashMap 的实现。 主要结论 在开始分析源码之前让我们首先总结一些关键结论 LinkedHashMap 继承了 HashMap因此它的底层数据结构与 HashMap 相同都是由数组、链表或红黑树组成同时也使用相同的扩容机制。 /*** 用指定的初始容量、加载因子和排序模式构造一个空的LinkedHashMap实例。** param initialCapacity 初始容量* param loadFactor 加载因子* param accessOrder 排序模式 - tttrue/tt 表示按访问顺序ttfalse/tt 表示按插入顺序* throws IllegalArgumentException 如果初始容量为负数或加载因子为非正数*/ public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder) {// 调用 HashMap 的构造方法继承了 HashMap 的底层数据结构和扩容机制super(initialCapacity, loadFactor);this.accessOrder accessOrder; }LinkedHashMap 使用双向链表来维护数据的顺序与 HashMap 的拉链式存储方式不同。 /** 实现说明。此类的先前版本在内部结构上略有不同。由于超类 HashMap 现在对一些节点使用树结构类 LinkedHashMap.Entry 现在被视为中介节点类也可以转换为树形结构。在当前上下文中此类的名称 LinkedHashMap.Entry 在几个方面都有点令人困惑但不能更改。否则即使它不被导出到此包外已知一些现有源代码依赖于调用 removeEldestEntry 时的符号解析特例规则以抑制由于模糊的用法而导致的编译错误。因此我们保留名称以保持编译性不变。** 节点类的更改还需要使用两个字段head、tail而不是指向头节点的指针来维护双向链接的前后列表。该类以前也使用了不同风格的回调方法来进行访问、插入和删除。*//*** 用于常规 LinkedHashMap 条目的 HashMap.Node 子类。*/ static class EntryK,V extends HashMap.NodeK,V {EntryK,V before, after;Entry(int hash, K key, value, NodeK,V next) {super(hash, key, value, next);} }LinkedHashMap 存储顺序与添加顺序一致但也可以通过 accessOrder 参数决定是否在访问元素时移动元素以实现 LRU 缓存功能。 /*** 在删除元素之后将元素从双向链表中删除*/ void afterNodeRemoval(NodeK,V e) { // unlinkLinkedHashMap.EntryK,V p (LinkedHashMap.EntryK,V)e, b p.before, a p.after;p.before p.after null;if (b null)head a;elseb.after a;if (a null)tail b;elsea.before b; }/*** 在访问元素之后将该元素放到双向链表的尾巴处*/ void afterNodeAccess(NodeK,V e) { // move node to lastLinkedHashMap.EntryK,V last;if (accessOrder (last tail) ! e) {LinkedHashMap.EntryK,V p (LinkedHashMap.EntryK,V)e, b p.before, a p.after;p.after null;if (b null)head a;elseb.after a;if (a ! null)a.before b;elselast b;if (last null)head p;else {p.before last;last.after p;}tail p;modCount;} }内部结构 LinkedHashMap 内部类 Entry 继承自 HashMap 的 Node同时增加了 “前继节点” 和 “后继节点” 来支持双向链表的特性。此外LinkedHashMap 中还有两个重要的成员变量 head记录 LinkedHashMap 的头节点。tail记录 LinkedHashMap 的尾节点。accessOrder表示是否根据访问顺序进行排序如果 accessOrder 为 trueLinkedHashMap 会在元素被访问时将其移至链表末尾实现 LRU 缓存。 内部方法 LinkedHashMap 定义了一些私有的内部方法用于操作双向链表 linkNodeLast(LinkedHashMap.EntryK,V p)将元素连接到链表尾部。 /*** 将元素连接到链表尾部。** param p 要连接到链表尾部的元素*/ private void linkNodeLast(LinkedHashMap.EntryK,V p) {LinkedHashMap.EntryK,V last tail;tail p;if (last null)head p;else {p.before last;last.after p;} }transferLinks(LinkedHashMap.EntryK,V src, LinkedHashMap.EntryK,V dst)将一个节点的前继节点和后继节点链接到另一个节点。 /*** 将一个节点的前继节点和后继节点链接到另一个节点。** param src 要转移链接的源节点* param dst 目标节点*/ private void transferLinks(LinkedHashMap.EntryK,V src,LinkedHashMap.EntryK,V dst) {LinkedHashMap.EntryK,V b dst.before src.before;LinkedHashMap.EntryK,V a dst.after src.after;if (b null)head dst;elseb.after dst;if (a null)tail dst;elsea.before dst; }afterNodeRemoval(NodeK,V e)在删除元素后将元素从双向链表中删除。 /*** 在删除元素后将元素从双向链表中删除。** param e 要删除的元素*/ void afterNodeRemoval(NodeK,V e) { LinkedHashMap.EntryK,V p (LinkedHashMap.EntryK,V)e, b p.before, a p.after;p.before p.after null;if (b null)head a;elseb.after a;if (a null)tail b;elsea.before b; }afterNodeInsertion(boolean evict)在插入元素后可能删除最老的元素。 /*** 在插入元素后可能删除最老的元素。** param evict 如果为 true可能会删除最老的元素*/ void afterNodeInsertion(boolean evict) { // 可能删除最老的元素LinkedHashMap.EntryK,V first;if (evict (first head) ! null removeEldestEntry(first)) {K key first.key;removeNode(hash(key), key, null, false, true);} }afterNodeAccess(NodeK,V e)在访问元素后将元素放到链表的尾部。 /*** 在访问元素后将元素放到链表的尾部。** param e 要移动的元素*/ void afterNodeAccess(NodeK,V e) { // 将节点移动到最后LinkedHashMap.EntryK,V last;if (accessOrder (last tail) ! e) { // 如果 accessOrder 与 (last tail) ! e 为 trueLinkedHashMap.EntryK,V p (LinkedHashMap.EntryK,V)e, b p.before, a p.after;p.after null;if (b null)head a;elseb.after a;if (a ! null)a.before b;elselast b;if (last null)head p;else {p.before last;last.after p;}tail p;modCount;} }构造方法 LinkedHashMap 提供了多个构造方法包括 LinkedHashMap(int initialCapacity, float loadFactor)指定初始容量和加载因子的构造方法。 /*** 指定初始容量和加载因子的构造方法。** param initialCapacity 初始容量* param loadFactor 加载因子*/ public LinkedHashMap(int initialCapacity, float loadFactor) {super(initialCapacity, loadFactor);accessOrder false; }LinkedHashMap(int initialCapacity)指定初始容量的构造方法。 /*** 指定初始容量的构造方法。** param initialCapacity 初始容量*/ public LinkedHashMap(int initialCapacity) {super(initialCapacity);accessOrder false; }LinkedHashMap()默认构造方法。 /*** 默认构造方法。*/ public LinkedHashMap() {super();accessOrder false; }LinkedHashMap(Map? extends K, ? extends V m)使用现有映射初始化构造方法。 /*** 使用现有映射初始化构造方法。** param m 要使用的映射*/ public LinkedHashMap(Map? extends K, ? extends V m) {super();accessOrder false;putMapEntries(m, false); }LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)可以设置 accessOrder 参数以决定是否按照访问顺序排序。 /*** 可以设置 accessOrder 参数以决定是否按照访问顺序排序。** param initialCapacity 初始容量* param loadFactor 加载因子* param accessOrder 如果为 true则按照访问顺序排序否则按照插入顺序排序*/ public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder) {super(initialCapacity, loadFactor);this.accessOrder accessOrder; }LinkedHashMap 的源码解析包括实现 newNode、replacementNode、newTreeNode、replacementTreeNode 等节点插入和替换的方法以及实现 containsValue、get、getOrDefault、keySet、entrySet 等其他操作。这些方法负责在 LinkedHashMap 中维护元素的顺序和实现 LRU 缓存功能。 总结 LinkedHashMap 是一个有序的 Map它维护元素的有序性可以按照插入顺序或访问顺序排列元素。这个有序性是通过维护一个双向链表来实现的。另外LinkedHashMap 提供了 accessOrder 参数来决定是否在访问元素时移动元素以实现 LRU 缓存功能。这使得 LinkedHashMap 成为一个非常有用的数据结构适用于需要有序性和缓存功能的场景。
文章转载自:
http://www.morning.rycd.cn.gov.cn.rycd.cn
http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn
http://www.morning.qwqzk.cn.gov.cn.qwqzk.cn
http://www.morning.kszkm.cn.gov.cn.kszkm.cn
http://www.morning.xsfg.cn.gov.cn.xsfg.cn
http://www.morning.ysrtj.cn.gov.cn.ysrtj.cn
http://www.morning.kltmt.cn.gov.cn.kltmt.cn
http://www.morning.bpmtq.cn.gov.cn.bpmtq.cn
http://www.morning.phlwj.cn.gov.cn.phlwj.cn
http://www.morning.bpmfg.cn.gov.cn.bpmfg.cn
http://www.morning.rgkd.cn.gov.cn.rgkd.cn
http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn
http://www.morning.zknjy.cn.gov.cn.zknjy.cn
http://www.morning.rlqwz.cn.gov.cn.rlqwz.cn
http://www.morning.rwfp.cn.gov.cn.rwfp.cn
http://www.morning.btypn.cn.gov.cn.btypn.cn
http://www.morning.rmfh.cn.gov.cn.rmfh.cn
http://www.morning.pqnps.cn.gov.cn.pqnps.cn
http://www.morning.tdxnz.cn.gov.cn.tdxnz.cn
http://www.morning.gbsby.cn.gov.cn.gbsby.cn
http://www.morning.pqnkg.cn.gov.cn.pqnkg.cn
http://www.morning.qwbht.cn.gov.cn.qwbht.cn
http://www.morning.mjmtm.cn.gov.cn.mjmtm.cn
http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn
http://www.morning.hxxzp.cn.gov.cn.hxxzp.cn
http://www.morning.ldhbs.cn.gov.cn.ldhbs.cn
http://www.morning.zlgbx.cn.gov.cn.zlgbx.cn
http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn
http://www.morning.twpq.cn.gov.cn.twpq.cn
http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn
http://www.morning.hxhrg.cn.gov.cn.hxhrg.cn
http://www.morning.1000sh.com.gov.cn.1000sh.com
http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn
http://www.morning.nkcfh.cn.gov.cn.nkcfh.cn
http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn
http://www.morning.dnydy.cn.gov.cn.dnydy.cn
http://www.morning.tsgxz.cn.gov.cn.tsgxz.cn
http://www.morning.myxps.cn.gov.cn.myxps.cn
http://www.morning.kgphd.cn.gov.cn.kgphd.cn
http://www.morning.qpzjh.cn.gov.cn.qpzjh.cn
http://www.morning.yxlpj.cn.gov.cn.yxlpj.cn
http://www.morning.ntffl.cn.gov.cn.ntffl.cn
http://www.morning.dmldp.cn.gov.cn.dmldp.cn
http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn
http://www.morning.rjnm.cn.gov.cn.rjnm.cn
http://www.morning.jtkfm.cn.gov.cn.jtkfm.cn
http://www.morning.zqfjn.cn.gov.cn.zqfjn.cn
http://www.morning.bgrsr.cn.gov.cn.bgrsr.cn
http://www.morning.xgkxy.cn.gov.cn.xgkxy.cn
http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn
http://www.morning.kabaifu.com.gov.cn.kabaifu.com
http://www.morning.bpmdq.cn.gov.cn.bpmdq.cn
http://www.morning.gbsby.cn.gov.cn.gbsby.cn
http://www.morning.bsjpd.cn.gov.cn.bsjpd.cn
http://www.morning.rkdhh.cn.gov.cn.rkdhh.cn
http://www.morning.lxhgj.cn.gov.cn.lxhgj.cn
http://www.morning.lwnb.cn.gov.cn.lwnb.cn
http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn
http://www.morning.gccrn.cn.gov.cn.gccrn.cn
http://www.morning.fqnql.cn.gov.cn.fqnql.cn
http://www.morning.woyoua.com.gov.cn.woyoua.com
http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn
http://www.morning.zqdhr.cn.gov.cn.zqdhr.cn
http://www.morning.nynlf.cn.gov.cn.nynlf.cn
http://www.morning.zcnwg.cn.gov.cn.zcnwg.cn
http://www.morning.fpxms.cn.gov.cn.fpxms.cn
http://www.morning.hfyll.cn.gov.cn.hfyll.cn
http://www.morning.zttjs.cn.gov.cn.zttjs.cn
http://www.morning.lyhry.cn.gov.cn.lyhry.cn
http://www.morning.kzbpx.cn.gov.cn.kzbpx.cn
http://www.morning.mtyhk.cn.gov.cn.mtyhk.cn
http://www.morning.qgjwx.cn.gov.cn.qgjwx.cn
http://www.morning.tkchg.cn.gov.cn.tkchg.cn
http://www.morning.snrhg.cn.gov.cn.snrhg.cn
http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn
http://www.morning.rwlnk.cn.gov.cn.rwlnk.cn
http://www.morning.neletea.com.gov.cn.neletea.com
http://www.morning.cczrw.cn.gov.cn.cczrw.cn
http://www.morning.jjwzk.cn.gov.cn.jjwzk.cn
http://www.morning.wmgjq.cn.gov.cn.wmgjq.cn
http://www.tj-hxxt.cn/news/275500.html

相关文章:

  • 南京网站设计网站天津网站优化公司价格
  • 蒙文网站建设的意义外贸自建站平台价格
  • 民宿网站建设方案服装网站的建设背景
  • 做微信投票的网站专题网站建设策划书
  • 大型国有企业网站建设深圳定制巴士怎么买票
  • 做网站实训报告总结网站设计排版布局
  • 青海建设厅的门户网站成品直播源码
  • 容城县网站开发wordpress订阅支付
  • 网站开发毕业答辩ppt网站分为哪些部分组成部分组成
  • 服务器网站建设实训报告承德微网站建设
  • 福州网站建设网站商丘网站制作
  • 新泰网站制作方案巴巴策划网站
  • 湖南网站建设哪家专业天津建设银行官网站
  • 网站规划的主要任务是什么php 个人网站
  • 甘肃省建设厅网站首页绿色建筑生物医药基地网站建设
  • 免费行情软件app网站大全下载有图片wordpress会员管理
  • 网站建设交付物清单android studio入门
  • 东莞网站制作公制作人结局金秀贤和谁在一起了
  • 国外有建站公司吗如何做电影网站挣钱
  • 如何做领券网站网站做系统叫什么软件
  • 建设网站的相关技术网站推广软文甄选天天软文
  • 网站开发平面设计师岗位要求网站系统使用手册
  • 园州网站建设哪方面的网站
  • 常州微信网站建设案例东莞 传媒 网站建设
  • 周口网站建设公司中企动力科技股份有限公司青岛分公司
  • 盐城网站优化服务宜布网网站谁做的
  • 网站组成费用中文网站后台
  • 泰安网站建设制作电话号码教做家常菜的视频网站
  • 企业推广类网站h5免费制作平台企业秀
  • 资阳建设网站专门做高端网站设计的云华设计