Map.entry详解

article/2025/9/10 13:46:43


   Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是Map中的一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set<Map.Entry<K,V>>表示一个映射项的Set。Map.Entry里有相应的getKey和getValue方法,即JavaBean,让我们能够从一个项中取出Key和Value。


下面是遍历Map的四种方法:

public static void main(String[] args) {Map<String, String> map = new HashMap<String, String>();map.put("1", "value1");map.put("2", "value2");map.put("3", "value3");//第一种:普遍使用,二次取值System.out.println("通过Map.keySet遍历key和value:");for (String key : map.keySet()) {System.out.println("key= "+ key + " and value= " + map.get(key));}//第二种System.out.println("通过Map.entrySet使用iterator遍历key和value:");Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, String> entry = it.next();System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第三种:推荐,尤其是容量大时System.out.println("通过Map.entrySet遍历key和value");for (Map.Entry<String, String> entry : map.entrySet()) {System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());}//第四种System.out.println("通过Map.values()遍历所有的value,但不能遍历key");for (String v : map.values()) {System.out.println("value= " + v);}}

下面是HashMap的源代码:

首先HashMap的底层实现用的时候一个Entry数组

java] view plain copy
<pre name="code" class="java">  /** * The table, resized as necessary. Length MUST Always be a power of two. */  transient Entry[] table; //声明了一个数组  ........  public HashMap() {  this.loadFactor = DEFAULT_LOAD_FACTOR;  threshold = (int)(DEFAULT_INITIAL_CAPACITY * DEFAULT_LOAD_FACTOR);  table = new Entry[DEFAULT_INITIAL_CAPACITY];//初始化数组的大小为DEFAULT_INITIAL_CAPACITY(这里是16)  init();  }</pre><br>  

再来看一下Entry是在什么地方定义的,继续上源码,我们在HashMap的源码的674行发现了它的定义,原来他是HashMap的一个内部类,并且实现了Map.Entry接口,以下有些地方是转载安静

static class Entry<K,V> implements Map.Entry<K,V> {  final K key;  V value;  Entry<K,V> next;  final int hash;  /** * Crea

http://chatgpt.dhexx.cn/article/1SeGe3FO.shtml

相关文章

遍历map的几种方法

#先往map加入几个数据 Map<Integer,String> mapnew HashMap<>();map.put(1,"美好的周一");map.put(2,"美好的周二");map.put(3,"美好的周三");方法一&#xff1a;普通的foreach循环&#xff0c;使用keySet()方法&#xff0c;遍历key…

The operator ‘SUBTRACT‘ is not supported between objects of type ‘null‘ and ‘java.lang.Integer‘

找了半天发现是判断id值是否为空时&#xff0c;数据类型发生转换问题。关于Integer和int在面试的时候出现的频率很高。而我们所熟知的是Integer是int 的包装类型&#xff0c;int的初始值为0&#xff0c;Integer的初始值为null。 org.springframework.expression.spel.SpelEvalu…

Spark Transformation —— subtract

上手使用 def subtract(other: RDD[T]): RDD[T] def subtract(other: RDD[T], numPartitions: Int): RDD[T] def subtract(other: RDD[T], partitioner: Partitioner)(implicit ord: Ordering[T] null): RDD[T] 该函数类似于intersection&#xff0c;但返回在RDD中出现&…

java 中subtract_Java.math.BigDecimal.subtract()方法实例

全屏 Java.math.BigDecimal.subtract()方法实例 java.math.BigDecimal.subtract(BigDecimal subtrahend)返回一个BigDecimal&#xff0c;其值为 (this - subtrahend), 精度为 max(this.scale(), subtrahend.scale()). 声明 以下是声明java.math.BigDecimal.subtract()方法publi…

bedtools subtract 基因区段取差集

基本概述&#xff1a; bedtools subtract 通俗的说&#xff0c;得到 A - B 的区段。如果在A中发现了B区段&#xff0c;就把 B 扣除&#xff0c;通过不同的参数&#xff0c;扣除的标准不一样。其中&#xff0c;参数 -A 可以达成 Remove features with any overlap 的效果&#x…

cv::subtract

计算两个数组或数组和标量之间的每个元素差。也就是图像的相减操作 opencv documentation的说明&#xff1a; 参数说明&#xff1a; src1:第一个输入数组或标量。 src2:第二个输入数组或标量。 src3:输出数组与输入数组有相同的大小和相同数量的通道。 src4:可选操作掩码;…

opencv之subtract

函数原型 void cv::subtract(InputArray src1, InputArray src2, OutputArray dst, InputArray masknoArray(), int dtype-1) python: dst cv.subtract(src1,src2[,dst[,mask[,dtype]]]) 参数说明 src1:input array or scalar src2:input array or scalar dst:output array…

OpenCV函数subtract()使用心得及需要注意的地方

OpenCV函数subtract()的原型如下&#xff1a; void cv::subtract( InputArray src1,InputArray src2,OutputArray dst,InputArray mask noArray(),int dtype -1 ) 官方文档说明如下&#xff1a; 看了以上文档并结合自己的使用&#xff0c;补充说明以下几点&#xff1a;…

moment系列一:add() 方法和subtract() 方法的使用

在工作中&#xff0c;因为自己去搜博客的时候老是找不到自己想要的答案&#xff0c;甚至一篇博客下来&#xff0c;找了好久都没收获&#xff0c;倍感疲惫&#xff0c;所以这里就废话不多说&#xff0c;直接上内容吧。 moment 中文官网地址&#xff1a;http://momentjs.cn momen…

基于改进EAST算法的文本检测

这段时间阅读研究了EAST算法以及在EAST算法上的改进并完成了复现运用到其他场景中去。 当今社会已进入图像大数据时代&#xff0c;图像数量庞大种类繁多&#xff0c;包含大量的有用知识。从图像中高效、精准、全面地提取文本和地理信息坐标等有用知识这一课题&#xff0c;也成…

自然文本检测主要模型

自然文本检测主要模型 CTPN模型 CTPN是目前流传最广、影响最大的开源文本检测模型&#xff0c;可以检测水平或微斜的文本行。文本行可以被看成一个字符sequence&#xff0c;而不是一般物体检测中单个独立的目标。同一文本行上各个字符图像间可以互为上下文&#xff0c;在训练…

深度学习:多场景多尺度的文本检测

《Fused Text Segmentation Networks for Multi-oriented Scene Text Detection》 用于多场景文本检测的融合文本分割网络。&#xff08;2018.5.7&#xff09; 文章笔记 摘要 - 本文从实例感知语义分割的角度介绍了一种新的面向多向场景文本检测的端到端框架。 我们提出了融…

FOTS:自然场景的文本检测与识别

在这篇文章里&#xff0c;我将分享我实现这篇论文的方法。 问题描述数据集关于数据使用的损失函数准备检测数据准备识别数据训练检测模型和识别模型代码整合显示结果引用 问题描述 我们需要从任何图像(包含文本)检测文本区域&#xff0c;这个图像可以是任何具有不同背景的东…

【文本检测】DBNet

目录 论文正文概述细节整体流程二值化自适应的门限可变形卷积标注损失计算推理 感悟 论文正文 链接&#xff1a;链接&#xff0c;提取码&#xff1a;7fmj 概述 文本检测主流的两个方法就是基于回归的方法和基于分割的方法。 基于回归的方法指的是迁移一些经典的目标检测算法…

openCV实践项目:图片文本检测

上一期我们通过对实验&#xff1a;银行卡卡号识别 加深了对前面所学openCV图像处理的一些理解 openCV实践项目&#xff1a;银行卡卡号识别_老师我作业忘带了的博客-CSDN博客 本次图片文本检测相对于要容易一些&#xff0c;内容如下&#xff1a; 一、流程说明 把一个这样的图片…

TextSnake文本检测

论文《TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes》 (1) 数据集 文章中提到了4个数据集&#xff1a; 1) Total-Text&#xff1b;(新开源曲线文本数据集) 2) SCUT-CTW1500; (新开源曲线文本数据集) 3) ICDAR 2015;(经典数据集) 4) MSRA…

值得一看的文本检测方法

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达 前 言 目前深度学习方法做文本检测比较普遍&#xff0c;但是也存在一些时候GPU资源不够&#xff0c;这时候就需要一些其他的方法来检测文本信息&#xff0c;本文主要介…

文本检测与识别

基于Advanced_EAST的文本检测算法 Advanced_EAST算法使用全卷积网络结构&#xff0c;输入图像通过全卷积神经网络后直接获得候选文本的位置&#xff0c;再通过非极大值抑制算法&#xff08;Non-Maximum Suppression&#xff0c;NMS&#xff09;获得最后的文本检测结果。 网络…

OCR文本检测模型—EAST

文章目录 一、EAST模型简介二、EAST模型网络结构三、EAST模型效果四、Advanced EAST 典型的文本检测模型一般是会分多个阶段&#xff08;multi-stage&#xff09;进行&#xff0c;在训练时需要把文本检测切割成多个阶段&#xff08;stage&#xff09;来进行学习&#xff0c;这种…