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

java系列-LinkedHashMap

1.插入新节点时,会将该节点加到链表尾部

 

public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{/*** The head (eldest) of the doubly linked list.*/transient LinkedHashMapEntry<K,V> head;/*** The tail (youngest) of the doubly linked list.*/transient LinkedHashMapEntry<K,V> tail;Node<K,V> newNode(int hash, K key, V value, Node<K,V> e) {LinkedHashMapEntry<K,V> p = new LinkedHashMapEntry<K,V>(hash, key, value, e);linkNodeLast(p);return p;}// link at the end of listprivate void linkNodeLast(LinkedHashMapEntry<K,V> p) {LinkedHashMapEntry<K,V> last = tail;tail = p; //更新p为尾节点if (last == null){ //如果之前尾节点为null,说明链表为null,那更新头节点为phead = p;} else {p.before = last;last.after = p;}}
}

2. 移除一个元素后,会将该元素从链表移除

 

public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {void afterNodeRemoval(Node<K,V> e) { // unlinkLinkedHashMapEntry<K,V> p = (LinkedHashMapEntry<K,V>)e, b = p.before, a = p.after;p.before = p.after = null;if (b == null){//之前p为headhead = a;//更新p的下一个元素为head} else{b.after = a;}if (a == null){//之前p为tailtail = b;} else{a.before = b;}}
}

相关文章:

java系列-LinkedHashMap

1.插入新节点时&#xff0c;会将该节点加到链表尾部 public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>{/*** The head (eldest) of the doubly linked list.*/transient LinkedHashMapEntry<K,V> head;/*** The tail (young…...

【linux】查看CPU和内存信息

之前咱们一起学习了查看内存的和CPU的命令。 ​mpstat &#xff1a; 【linux】 mpstat 使用 uptime&#xff1a;【Linux】 uptime命令使用 CPU的使用率&#xff1a;【linux】查看CPU的使用率 nmon &#xff1a;【linux】nmon 工具使用 htop &#xff1a;【linux】htop 命令…...

【产品经理】产品专业化提升路径

产品专业化就是上山寻路&#xff0c;梳理一套作为产品经理的工作方法。本文作者从设计方法、三基座、专业强化、优秀产品拆解、零代码这五个方面&#xff0c;对产品经理的产品专业化进行了总结归纳&#xff0c;一起来看一下吧。 产品专业化就是上山寻路&#xff0c;梳理一套作为…...

Ubuntu(WSL)卸载与安装指定版本的 openssl

卸载 openssl 1&#xff09;查找并删除 openssl 关联的目录与文件 whereis opensslwhich opensslrm -rf /a/b/c/ // 使用 rm 命令删除所有 openssl 相关目录 2&#xff09;删除软件安装包 apt-get purge openssl 3&#xff09;删除配置文件 rm -rf /etc/ssl 安装 ope…...

leetcode1115. 交替打印 FooBar

题目 1115. 交替打印 FooBar 给你一个类&#xff1a; class FooBar {public void foo() {for (int i 0; i < n; i) {print("foo");}}public void bar() {for (int i 0; i < n; i) {print("bar");}} }两个不同的线程将会共用一个 FooBar 实例&am…...

qt有哪些常用控件

Qt 是一个跨平台的应用程序开发框架&#xff0c;提供了许多不同类型的控件来构建用户界面。以下是一些常见的 Qt 控件&#xff1a; 按钮&#xff08;Button&#xff09;&#xff1a;用于执行操作或触发事件。文本框&#xff08;TextBox&#xff09;&#xff1a;用于输入和显示文…...

docker 手工redis7.x cluster

IP端口192.168.0.816379/6380192.168.0.826379/6380192.168.0.1146379/6380 mdkir /data/{6379,6380}cat <<END> /data/6379.conf # 端口号 port 6379# 设置客户端连接后进行任何其他指定前需要使用的密码 #requirepass 123456 ## 当master服务设置了密码保护时(用re…...

【华为OD题库-082】TLV解析II-Java

题目 两端通过TLVQ格式的报文来通信&#xff0c;现在收到对端的一个TLV格式的消息包&#xff0c;要求生成匹配后的(tag,length,valueOffset)列表。具体要求如下: (1)消息包中多组tag、length、value紧密排列&#xff0c;其中tag,length各占1字节(uint8),value所占字节数等于len…...

Memcached学习

一、概念 Memcached是一个开源的&#xff0c;高性能的内存缓存软件&#xff0c;从名称上看Mem就是内存&#xff0c;二cache是缓存。作用通过在事先规划好的内存空间中临时缓存数据库中的各类数据&#xff0c;以达到减少业务对数据库的直接高并发访问&#xff0c;从而达到提升数…...

2024最新金三银四软件测试面试题

一直以来大大小小参与过不少面试&#xff0c;遇到过不少坑&#xff0c;但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下&#xff0c;希望以后自己能加深印象。 1、appium 怎么定位toast弹框 appium1.6以后回答需要升级u2进行定位。 2、什么是事务&#xff0c;知道事…...

微信小程序动态加载图表[echart]

1.引入Echarts &#xff08;1&#xff09;将ec-canvas文件拷贝下来放到你自己的项目中&#xff1a; &#xff08;2&#xff09;在你需要使用Echarts的页面的json文件中引入Echarts "usingComponents": {"ec-canvas": "../utils/ec-canvas/ec-canva…...

《opencv实用探索·十八》Camshift进行目标追踪流程

CamShift&#xff08;Continuously Adaptive Mean Shift&#xff09;是一种用于目标跟踪的方法&#xff0c;它是均值漂移&#xff08;Mean Shift&#xff09;的扩展&#xff0c;支持对目标的旋转跟踪&#xff0c;能够对目标的大小和形状进行自适应调整。 cv::CamShift和cv::me…...

MAP: Multimodal Uncertainty-Aware Vision-Language Pre-training Model

问题 多模态语义理解通常需要处理不确定性&#xff0c;这意味着获得的消息往往涉及多个目标。这种不确定性对我们的解释来说是有问题的&#xff0c;包括模式间和模式内的不确定性。人们很少研究这种不确定性的建模&#xff0c;特别是在未标记数据集的预训练和特定任务下游数据…...

【SpringCache】快速入门 通俗易懂

1. 介绍 Spring Cache 是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能。 Spring Cache 提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;例如&#xff1a; EHCache Caffeine Redis(常用…...

GeoTools学习笔记

Feature要素&#xff1a; 例子&#xff1a;Csv2Shape.java 创建要素&#xff0c;先创建FeatureType&#xff0c;再创建Feature 根据FeatureCollection&#xff0c;可以创建shapefile https://docs.geotools.org/latest/userguide/library/main/data.html API详解&#xff1a;…...

短剧规模达到了百亿元,短剧分销成为短剧新模式

我国短剧市场规模直接突破了三百多亿元&#xff0c;目前已经是互联网的一大创业风口&#xff01; 一、短剧特点 在当下快节奏的生活中&#xff0c;短剧具有的快节奏、剧情紧凑的特点&#xff0c;符合大众对影视的需求。目前我国的短剧题材主要是言情、总裁、赘婿等&#xff0…...

Kotlin 中的 `as` 关键字:类型转换的艺术

在 Android 编程中&#xff0c;类型转换是一项常见的操作。为了使这一过程更加流畅和安全&#xff0c;Kotlin 提供了 as 关键字。本文将深入探讨 as 关键字的用法和最佳实践。 一、as 关键字的基本概念 &#x1f680; as 关键字在 Kotlin 中用于显式类型转换。它将一个表达式…...

CDN可以给企业网站带来哪些优势?

企业网站带来哪些优势&#xff1f;现在企业最关心的问题&#xff0c;就是我的网站能不能打开&#xff0c;用户访问到的是不是正常的页面&#xff0c;网站是否能够正常运营&#xff0c;而互联网是 一个开放式的平台&#xff0c;网站是否能够正常运营和很多因素都有关系&#xff…...

离线运行Oracle Database In-Memory Advisor

概念 离线运行Oracle Database In-Memory Advisor&#xff0c;就是不在生产系统上运行。这样可以避免影响生产系统。但需要从生产系统导出以下的数据&#xff1a; AWR DumpAWR补充数据 过程 导出AWR Dump 连接到CDB root运行。 SQL> connect / as sysdba SQL> ?/r…...

2,PyCharm的下载与安装

1&#xff0c;PyCharm的下载 a&#xff1a;打开PyCharm官网&#xff0c;并选择Developer Tools → PyCharm Pycharm官网地址 b&#xff1a;点击Download c&#xff1a;下载完成后&#xff0c;会在下载文件夹中&#xff0c;出现“pycharm-professional-2023.3.exe”文件 2&a…...

圣女司幼幽-造相Z-Turbo赋能微信小程序开发:AI绘图功能集成案例

圣女司幼幽-造相Z-Turbo赋能微信小程序开发&#xff1a;AI绘图功能集成案例 最近在做一个挺有意思的小项目&#xff0c;朋友想给他的文创小店做个微信小程序&#xff0c;核心功能是让用户输入一段文字描述&#xff0c;就能生成一张独一无二的插画。这需求听起来很酷&#xff0…...

Win11Debloat:三步焕新Windows系统,让老电脑性能提升50%的开源神器

Win11Debloat&#xff1a;三步焕新Windows系统&#xff0c;让老电脑性能提升50%的开源神器 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other chan…...

如何让老照片焕发新生?图像超分技术的4大突破与分辨率增强实践

如何让老照片焕发新生&#xff1f;图像超分技术的4大突破与分辨率增强实践 【免费下载链接】SwinIR SwinIR: Image Restoration Using Swin Transformer (official repository) 项目地址: https://gitcode.com/gh_mirrors/sw/SwinIR 在数字时代&#xff0c;我们常常遇到…...

玩转哔哩哔哩视频下载:3分钟掌握DownKyi的高效秘籍

玩转哔哩哔哩视频下载&#xff1a;3分钟掌握DownKyi的高效秘籍 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…...

SDMatte算法原理浅析:从卷积神经网络看图像分割技术

SDMatte算法原理浅析&#xff1a;从卷积神经网络看图像分割技术 1. 效果展示&#xff1a;当AI学会"精准抠图" 先来看一组实际案例。左边是原始图片&#xff0c;右边是SDMatte算法的处理结果&#xff1a; 你会注意到&#xff0c;即便是复杂场景下的发丝、半透明物体…...

Intv_ai_mk11 C++高性能集成开发教程

Intv_ai_mk11 C高性能集成开发教程 1. 为什么需要高性能C集成方案 在AI应用开发中&#xff0c;性能往往是关键瓶颈。当你的C应用需要频繁调用AI模型API时&#xff0c;一个高效的集成方案能带来显著差异。想象一下&#xff0c;你正在开发一个实时视频分析系统&#xff0c;每秒…...

Google Authenticator PHP集成避坑指南:从扫码到验证的完整流程与常见错误解决

Google Authenticator PHP集成深度排障手册&#xff1a;从原理到实战的30个关键细节 当你按照教程一步步完成Google Authenticator的PHP集成&#xff0c;却在最后一步验证失败时&#xff0c;那种挫败感我深有体会。三年前我第一次在金融项目中实现动态口令认证&#xff0c;连续…...

Windows下OpenClaw安装指南:一键对接Phi-3-mini-128k-instruct模型

Windows下OpenClaw安装指南&#xff1a;一键对接Phi-3-mini-128k-instruct模型 1. 为什么选择OpenClawPhi-3-mini组合&#xff1f; 去年我在尝试自动化办公流程时&#xff0c;发现市面上的RPA工具要么太笨重&#xff0c;要么需要复杂的编程。直到遇到OpenClaw这个开源智能体框…...

光刻胶选型避坑指南:从正胶负胶到配套试剂的全流程解析

光刻胶选型避坑指南&#xff1a;从正胶负胶到配套试剂的全流程解析 在半导体制造领域&#xff0c;光刻工艺的质量直接决定了芯片的性能和良率。而光刻胶作为光刻工艺的核心材料&#xff0c;其选型往往成为工艺工程师最头疼的问题之一。我曾亲眼见过一个团队因为选错光刻胶类型&…...

Unity/Unreal开发者必看:用四元数彻底告别万向死锁,让你的3D角色旋转丝滑起来

Unity/Unreal开发者必看&#xff1a;用四元数彻底告别万向死锁&#xff0c;让你的3D角色旋转丝滑起来 在游戏开发中&#xff0c;角色的旋转控制是一个看似简单却暗藏玄机的技术点。许多开发者都遇到过这样的场景&#xff1a;当角色抬头到90度时&#xff0c;水平旋转突然变得诡异…...