Java中的LinkedHashMap

介绍:

LinkedHashMap是一个Map实现,它维护其元素的插入顺序。 它扩展了HashMap类:

public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>

就像HashMap一样 ,它允许存储一个null键和许多null值。

实例化

我们可以使用以下构造函数之一来创建LinkedHashMap

LinkedHashMap() //default capacity 16 with load factor of 0.75LinkedHashMap(Map<? extends K,? extends V> map)LinkedHashMap(int initialCapacity)LinkedHashMap(int initialCapacity, float loadFactor)LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

最后一个构造函数还接受布尔参数accessOrder

当我们将true传递给accessOrder时,我们将实例化一个访问顺序LinkedHashMap 访问顺序LinkedHashMap维护从最近使用到最近使用的元素的访问顺序,而不是插入顺序。

我们可以将Java LinkedHashMap分为两个主要类别:

1.插入顺序

除非另有说明,否则LinkedHashMap会维护其元素的插入顺序。 我们可以将其命名为插入顺序LinkedHashMap

让我们看一个例子:

@Test
public void insertionOrderLinkedHashMap() {LinkedHashMap<Integer, String> map = new LinkedHashMap<>();map.put(1, "A");map.put(2, "B");map.put(3, "C");assertEquals("[1, 2, 3]", map.keySet().toString());map.get(2); // accessing elementassertEquals("[1, 2, 3]", map.keySet().toString()); //still maintains insertion order}

2.访问顺序

当我们使用构造函数: LinkedHashMap(int initialCapacity,float loadFactor,boolean accessOrder)并将真实值传递给accessOrder参数时,我们将获得一个访问顺序LinkedHashMap

让我们看看访问顺序LinkedHashMap的实际工作原理:

@Test
public void accessOrderLinkedHashMap() {LinkedHashMap<Integer, String> map = new LinkedHashMap<>(16, 0.75f, true);map.put(1, "A");map.put(2, "B");map.put(3, "C");assertEquals("[1, 2, 3]", map.keySet().toString());map.get(2); // accessing elementassertEquals("[1, 3, 2]", map.keySet().toString());}

在使用键2作为元素访问元素时,它移到了最后一个位置。 显然, 根据从最近到最近的访问顺序对元素进行排序。

常用方法:

让我们探索流行的方法:

  1. V put(K键,V值):HashMap类继承此方法。 它存储给定的键值对。 如果键已经存在,则更新值
  2. void replaceAll(BiFunction <?super K,?super V,?extended V> function):用该条目上调用函数的结果替换每个条目的值,直到所有条目都已处理或该函数引发异常
  3. boolean containsKey(Object key):检查给定键是否存在
  4. boolean containsValue(Object value):如果至少有一个具有该值的键,则返回true
  5. V get(Object key):根据键检索值
  6. V getOrDefault(Object key,V defaultValue):如果键存在,则返回映射值,否则返回默认值
  7. void clear():删除所有元素
  8. Set <Map.Entry <K,V >> entrySet():返回给定地图中映射的Set视图
  9. Set <K> keySet():返回地图中包含的键的Set视图
  10. Collection <V> values():返回包含在映射中的值的Collection视图
  11. forEach(BiConsumer <?super K,?super V> action):对给定映射中的每个条目执行给定操作,直到处理完所有条目或引发异常
  12. protected boolean removeEldestEntry(Map.Entry <K <V> eldest) :如果地图应删除其最旧的条目,则此方法将返回true

现在让我们尝试以下几种方法:

Map<Integer, String> map = new LinkedHashMap<>();map.put(1, "A");
map.put(2, "B");map.forEach((k, v) -> System.out.println(k + ":" + v));System.out.println(map.size());System.out.println(map.containsKey(1));System.out.println(map.get(1));map.remove(1);for(Map.Entry<Integer, String> entry : map.entrySet()) {System.out.println("Key=" + entry.getKey() + ", Value=" + entry.getValue());
}

结论:

在这篇快速文章中,我们研究了LinkedHashMap是什么以及如何实例化和使用它。

成为第一个发表评论的人。

翻译自: https://www.javacodegeeks.com/2019/05/linkedhashmap-java.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342729.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从十四五规划看 物联网(NB-IoT、Cat.1、5G)将何去何从?

第九届中国电子信息博览会&#xff08;CITE2021&#xff09;联合同期的第97届中国电子展将在深圳会展中心举办。集中展示包括智慧家庭、5G物联网、智能网联汽车、网信产业、工业互联网、集成电路、新型显示、大数据存储、基础电子元器件等代表电子信息产业未来发展的核心内容。…

【渝粤教育】国家开放大学2018年秋季 0233-22T学前儿童语言教育 参考试题

科目编号&#xff1a;0248 座位号 2018-2019学年度第一学期期末考试 电工电子技术 试题 2019年1月 填空题&#xff08;每小题 6分&#xff0c;共30分&#xff09; 1&#xff0e;电路由__________&#xff0c;__________&#xff0c;_____________组成。 2.己知正弦电流200s…

工业交换机的定义和应用

工业交换机定义&#xff1a; 交换机英文名称为Switch&#xff0c;也称为交换式集线器&#xff0c;交换机是构建网络平台的“基石”&#xff0c;又称网络开关它是一种基于MAC地址(网卡的硬件标志)识别&#xff0c;能够在通信系统中完成信息交换功能的设备。其工作原理可以简单地…

NB-IoT与LoraWan技术分析与前景展望

物联网的快速发展对无线通信技术提出了更高的要求&#xff0c;专为低带宽、低功耗、远距离、大量连接的物联网应用而设计的LPWAN(low-power Wide-Area Network&#xff0c;低功耗广域网)也快速兴起。物联网应用需要考虑许多因素&#xff0c;例如节点成本&#xff0c;网络成本&a…

【渝粤教育】国家开放大学2018年秋季 0314-22T兽医基础 参考试题

试卷代码&#xff1a;0341 2018-2019学年度第一学期期末考试 高级英语听力&#xff08;2&#xff09;试题 2019年1月 注 意 事 项 一、将你的准考证号、学生证号、姓名及分校&#xff08;工作站&#xff09;名称填写在答题纸规定栏内。 考试结束后&#xff0c;把试卷和答题纸放…

ZigBee自组网地址分配与路由协议技术详解

1. ZigBee简介 ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定&#xff0c;ZigBee技术是一种短距离、低功耗的无线通信技术。 ZigBee协议从下到上分别为物理层(PHY)、媒体访问控制层(MAC)、传输层(TL)、网络层(NWK)、应用层(APL)等。其中物理层&#xff…

【渝粤教育】国家开放大学2018年秋季 0554-21T立体构成(一) 参考试题

科目编号&#xff1a;0570 座位号 2018-2019学年度第一学期期末考试&#xff08;开卷&#xff09; 摄像、录像制作 试题 2019年 1 月 一、填空题&#xff08;本大题共3小题10个空&#xff0c;每空2分&#xff0c;共计20分。&#xff09; 1&#xff0e;字幕在电视教材中一般用于…

无线模块的电源设计指南

无线通信早已深入人们的生活&#xff0c;设计无线模块的公司也越来越多&#xff0c;从事射频设计的朋友也越来越多&#xff0c;以下是我总结的一些无线模块的电源设计注意事项分享给各位希望对各位读者有所帮助。如果有不同意见或建议的也希望大家通过成都亿佰公司的官网微博及…

【渝粤教育】国家开放大学2018年秋季 0690-21T化工原理及实验 参考试题

科目编号&#xff1a;0692 2018-2019学年度第一学期期末考试 化工设备机械基础试题参考答案 2019年1月 一、选择题&#xff08;每小题3分&#xff0c;共30分&#xff09; 1.B 2.B 3.A 4.A 5. D 6.C 7.C 8.C 9.A 10.A 二、填空题&#xff08;每空3分&#xff0c;共30分&#x…

怎么样解决小交换机引起的路由环路故障?

一般引起路由故障的原因有很多&#xff0c;例如管理不善&#xff0c;私自接一些交换机、路由器等。那么&#xff0c;如何解决小交换机引起的路由环路故障?接下来我们就跟随飞畅科技的小编一起来详细看看吧&#xff01; 环路会导致交换机性能衰竭&#xff0c;无法交换发送数据…

java ee maven_针对新手的Java EE7和Maven项目–第1部分–简单的Maven项目结构–父pom...

java ee maven为什么呢 很多时候&#xff0c;我在日常工作中试图解决一些基本或复杂的Maven / Java EE项目结构问题。 为了提供解决方案&#xff0c;我经常最终会尝试项目结构&#xff0c;测试我在不同应用程序服务器上的部署并细化我的配置。 Maven对于新来者来说可能会有陡峭…

【渝粤教育】国家开放大学2018年秋季 0716-22T工程建设法规 参考试题

科目编号&#xff1a;[0720] 座位号 2018-2019学年度第一学期期末考试 中级会计实务&#xff08;二&#xff09; 试题 2019年 1 月 一、单选题&#xff08;本大题共10小题&#xff0c;每小题3分&#xff0c;共计30分&#xff09; &#xff08;★请考生务必将答案填入到下面对应…

什么是SFP光模块?光模块知识介绍!

光模块(optical module)由光电子器件、功能电路和光接口等组成&#xff0c;光电子器件包括发射和接收两部分。简单的说&#xff0c;光模块的作用就是光电转换&#xff0c;发送端把电信号转换成光信号&#xff0c;通过光纤传送后&#xff0c;接收端再把光信号转换成电信号。常见…

【渝粤教育】国家开放大学2018年秋季 1062t文学英语赏析 参考试题

试卷代号&#xff1a;1073 法律文书 试题 2019年1月 一、单项选择题&#xff08;本大题共6小题&#xff0c;每小题3分&#xff0c;共18分。在每小题 列出的四个备选答案中只有一个符合题目要求&#xff0c;请将其序号字母填写在题目括号内。错选、多选或少选均不得分&#xff…

中继(洪泛中继、定向中继)在无线通讯中的应用

无线中继&#xff0c;即中继节点在无线网络中起到中继的作用&#xff0c;能实现信号的中继和放大&#xff0c;从而延伸无线网络的覆盖范围。就中继的运行机制而言&#xff0c;中继可分为洪泛中继、定向中继。 洪泛中继&#xff0c;是指中继设备在任何时刻收到的任意数据包&…

Jakarta EE 8状态

遵循Jakarta EE的您可能知道即将发布的Jakarta EE 8在功能上将与Java EE 8等效。其原因是我们想证明从Oracle的传输是完整的&#xff0c;并且我们能够产生流程&#xff0c;规范&#xff0c;测试套件以及通过Eclipse Foundation的兼容实现。 到目前为止&#xff0c; Eclipse Gl…

21秋期末考试财务会计(二)10165k2

1、下列属于非流动资产的项目是&#xff08;  &#xff09;。 &#xff08;2 分&#xff09; A&#xff0e;span lang"ZH-CN"在建工程 B&#xff0e;span lang"ZH-CN"应付账款 C&#xff0e;span lang"ZH-CN"应收利息 D&#xff0e;span lang&…

增加无线模块传输距离的方法

随着无线数据传输的发展&#xff0c;无线模块的应用也越来越广泛。无线模块广泛地应用于车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号…

光模块的正确安装方法和使用须知

光模块(optical module)由光电子器件、功能电路和光接口等组成&#xff0c;光电子器件包括发射和接收两部分。简单的说&#xff0c;光模块的作用就是光电转换&#xff0c;发送端把电信号转换成光信号&#xff0c;通过光纤传送后&#xff0c;接收端再把光信号转换成电信号。那么…

[渝粤教育] 广东-国家-开放大学 21秋期末考试计量经济学10551k1

1、下面说法正确的是&#xff08; &#xff09;&#xff08;2 分&#xff09; A&#xff0e;先决变量是随机变量 B&#xff0e;外生变量是非随机变量 C&#xff0e;外生变量是随机变量 D&#xff0e;内生变量是非随机变量 2、平稳时间序列的均值和方差是固定不变的&#xff0c;…