vue取通过key取value_如何通过获取map中的key来获得与key对应的value值,进行运算...

展开全部

获取map的key和value的方法分为以下62616964757a686964616fe4b893e5b19e31333366306439两种形式:

1、map.keySet():先获取map的key,然后根据key获取对应的value;

2、map.entrySet():同时查询map的key和value,只需要查询一次;

注意:当map的value值相等时,根据key值进行排序

很多人都推荐使用entrySet,认为其比keySet的效率高很多。理由是:entrySet方法一次拿到所有key和value的集合;而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率。

两种方法对比测试如下:

HashMap测试数据:

TreeMap测试数据:

扩展资料:

map.keySet()和map.EntrySet()的比较:

一、如果使用HashMap

1、同时遍历key和value时,keySet与entrySet方法的性能差异取决于key的具体情况,如复杂度(复杂对象)、离散度、冲突率等。换言之,取决于HashMap查找value的开销。

entrySet一次性取出所有key和value的操作是有性能开销的,当这个损失小于HashMap查找value的开销时,entrySet的性能优势就会体现出来。

在比测试中,当key是最简单的数值字符串时,keySet可能反而会更高效,耗时比entrySet少10%。总体来说还是推荐使用entrySet。

因为当key很简单时,其性能或许会略低于keySet,但却是可控的;而随着key的复杂化,entrySet的优势将会明显体现出来。当然,我们可以根据实际情况进行选择

2、只遍历key时,keySet方法更为合适,因为entrySet将无用的value也给取出来了,浪费了性能和空间。在上述测试结果中,keySet比entrySet方法耗时少23%。

3、只遍历value时,使用vlaues方法是最佳选择,entrySet会略好于keySet方法。

二、如果使用TreeMap

1、同时遍历key和value时,与HashMap不同,entrySet的性能远远高于keySet。这是由TreeMap的查询效率决定的,也就是说,TreeMap查找value的开销较大,明显高于entrySet一次性取出所有key和value的开销。因此,遍历TreeMap时强烈推荐使用entrySet方法。

2、只遍历key时,keySet方法更为合适,因为entrySet将无用的value也给取出来了,浪费了性能和空间。在上述测试结果中,keySet比entrySet方法耗时少24%。

3、只遍历value时,使用vlaues方法是最佳选择,entrySet也明显优于keySet方法。

参考资料:

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

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

相关文章

Android坑点-ByteBuffer.array() 入过坑吗

目录1、坑点介绍2、正确使用姿势(入坑了怎么办)3、坑坑详解3.1HeapByteBuffer可以用buffer.array()3.2DirectByteBuffer的坑在哪里1、坑点介绍 如下代码: ByteBuffer buffer ByteBuffer.allocateDirect(int capacity) byte[] array buf…

php四则运算出题器_php实现简单四则运算器

本文实例为大家分享了php实现简单四则运算器的具体代码,供大家参考,具体内容如下前端代码 :php计算器请输入num1:请选择运算符:-*/%请输入num2:后台:php计算器$num1$_post["num1"];$n…

步苹果iOS的后尘,谷歌Android12“翻车”,更新需谨慎?

苹果不论电脑还是移动设备,都是一如既往的“强硬”。说实话,忽视“兼容”,体验极低。 有小伙伴调侃:人家就是要你买新机器。也有小伙伴(包括我在内),直接关闭系统自动更新。 开发者&#xff1a…

word把选择答案弄到题目里_word中把选择题的正确答案自动填到括号里技巧

为了适应各类复习迎考,大家都会利用一些题目来练习。当面对题目与答案分离的现状(两个文档或一个文档的两个部分)时,怎样将题目和答案合二为一,使答案自动填充到题目后的括号中是颇让大家头疼的一件事情。经过实践探索多步骤的组合操作可以实…

Android Studio无线连接设备调试,比数据线更方便

前言 一般情况下,多数移动开发者使用的是数据线连接电脑,进行各种移动设备的调试,更有胜者,非常迷恋模拟器,模拟器它好不好,答案是好,因为直接运行在电脑上,直接操作,调试…

机器学习里面的基函数_神经网络与机器学习 笔记—核方法和径向基函数网络(上)...

对于神经网络的监督学习有多种不同方法。之前一直总结整理的多层感知器反向传播算法,可以看做是递归技术的应用,这种技术在统计学中通称为随机逼近。这次是采用不同的途径,通过包含如下两个阶段的混合方式解决非线性可分模式的分类问题&#…

AndroidJava List与equals的微妙关系,小心掉坑里

前言 List 有多个实现,本文以ArrayList(LinkedList也一样)作为说明,equals是Object的一个成员函数,例子中的bean重写实现它。 一、Bean 类定义并重写equals函数 public class Book {private String id;private String name;public String ge…

apache缺省banner_http服务器缺省banner

HTTP协议详解(真的很经典)HTTP协议详解(真的很经典)Author :清晨引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目…

GenseeSDK 使用Kotlin要注意TODOAndroid Studio关闭TODO

目录一、Kotlin的TODO二、GenseeSDK与TODO 请注意三、Android studio关闭TODO一、Kotlin的TODO 在实现一些接口时候,工具自动将所有的接口函数"空"实现,并在函数体中增加一行代码: TODO或TODO(“not implemented”) 作为提醒催促…

如何启动netcat_Netcat用法

Netcat用法--服务泄漏内部信息要得到某些端口号的详细信息,可以连接到某个端口,对应的服务会告知它的版本号、结构甚至其工作的操作系统。所以,可以使用Netcat来扫描一个特定范围内的端口并报告在这些端口上运行的服务。要使Netcat自动工作&a…

AndroidJava try-catch-finally正确用法

目录一、try-catch-finally的用途二、try-catch的正确使用三、奇怪的try-finally (错误的用法)四、关于try-catch-finally的面试考察1、try、catch、finally 考察,请指出下面程序的运行结果。2、try、catch、finally 考察2,请指出…

python tcp服务器并发_python tcp并发服务器

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":6,"count":6}]},"card":[{"des":"云服务器 ECS(Elastic Compute Service)是一…

OpenCV Mat基础认知感

OpenCV是一个开源的供开发的计算机视觉处理库,涵盖的内容包括图像处理,机器学习。由c到c ,再到各平台的跨平台框架。 Mat - 图像容器 Mat类用于表示一个多维的单通道或者多通道的稠密数组。能够用来保存实数或复数的向量、矩阵,…

layui多文件上传讲解_Layui 多文件上传 SSH

jsp 页面pageEncoding"UTF-8"%>Insert title here选择多文件文件名大小状态操作开始上传layui.use(upload, function(){var $ layui.jquery,upload layui.upload;//多文件列表示例var demoListView $(#demoList),uploadListIns upload.render({elem: #testLis…

OpenCV:H1.type() == H2.type() H1.depth() == CV_32F

如题: E/cv::error(): OpenCV(4.1.0) Error: Assertion failed (H1.type() H2.type() && H1.depth() CV_32F) in compareHist, file /build/master_pack-android/opencv/modules/imgproc/src/histogram.cpp, line 1936 E/org.opencv.imgproc: imgproc::co…

css 外弧_css 伪类实现弧形

在实现页面五花八门的有特色的ui时,我们有时会遇到要用实现一个弧形,而这样的弧形要怎么实现呢?用图片?不太优雅,这样就要无故多加载一张图片了,这里来说说怎么用css的after伪类来实现弧形。总思路&#xf…

C++期末实践程序设计与数组作为参数的注意事项

目录小表弟发来的求助信号要点代码文件头文件Student.h源文件Student.cppmain.c执行结果c数组特性以及数组做形参的特点数组试验数组特殊性质不允许拷贝和赋值数组是通常被转化成指针使用数组形参多种写法代理模式MVC模式小表弟发来的求助信号 并补充说要5种写法才算过关。 要…

sgm3157功能_SGM3157_SGM3157供应商_价格_Datasheet_pdf资料-IC资料网

SGM31574.5惟 Low Voltage SPDT Analog SwitchSGMICROSG Micro CorpLow Voltage SPDT Analog Switch in 6-Pin SC70SGMICROSG Micro Corp4.5惟 Low Voltage SPDT Analog SwitchSGMICROSG Micro CorpFLAT WASHERS NYLON FIBREetc2List of Unclassifed Manufacturers70 MHz Bandp…

windows 7远程桌面和被远程连接电脑启动远程桌面服务

目录远程桌面连接开启远程桌面服务(被连电脑)配置启动远程桌面服务远程桌面连接 这部分主要讲解如何通过一台windows 电脑的远程桌面程序连接"远程"电脑桌面。前提是被连的那台电脑已开启远程桌面服务。远程桌面服务开启之后,可以…

desktop docker 无法卸载_关于Docker:Docker – 无法移除死容器

我无法删除死容器,它在重新启动Docker服务后再次出现。docker ps -aCONTAINER ID STATUS11667ef16239 Dead然后docker rm -f 11667ef16239然后,当我运行docker ps -a时,没有Docker容器显示。docker ps -aCONTAINER ID …