map集合的putall_Map.put和Map.putAll方法之间的区别?

当使用putAll而不是put时,我看到巨大的性能优势。 请参见下面的示例程序:

公共类SampleTest {

public static void main(final String[] args) {

final Map testMap = new HashMap<>();

final Map testMap2 = new HashMap<>();

final LocalDateTime startTestTime = LocalDateTime.now();

for(int i=0; i < 1000000; i++) {

testMap.put(i+"", i+"");

}

final LocalDateTime endTestTime = LocalDateTime.now();

System.out.println("<<<<<<<<>>>>>>>>>>");

System.out.println(ChronoUnit.MILLIS.between(startTestTime, endTestTime));

final LocalDateTime startTestTime1 = LocalDateTime.now();

testMap2.putAll(testMap);

final LocalDateTime endTestTime1 = LocalDateTime.now();

System.out.println("<<<<<<<<>>>>>>>>>>");

System.out.println(ChronoUnit.MILLIS.between(startTestTime1, endTestTime1));

}

}

这返回(毫秒):

<<<<<<<<>>>>>>>>>>

1934

<<<<<<<<>>>>>>>>>>

116

结论: 的putAll()肯定更比使用下面的免责声明更高效。 1.此结果在我的机器上(即取决于机器配置)。但你仍然看到很大的差异。 2.如上所述Map是一个接口,所以性能取决于实现,我已经考虑到了HashMap的广泛使用。 所以如果性能是一个约束,你可以更喜欢putAll()为HashMap atleast。

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

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

相关文章

ubuntu20.04自带python版本_替换 ubuntu 自带的python版本

首先在这里下载你想用的各个版本的python&#xff0c;我用的是2.7.11&#xff1a; https://www.python.org/ftp/python/还是老样子&#xff1a; ./configure --> make --> make install接下来将你自带的版本替换成自己的版本&#xff1a; 先 which python 查看你的p…

物料编码是计算机系统对物料,物料编码是什么?

物料编码是唯一标识物料的代码,通常用字符串(定长或不定长)或数字表示.物料编码是计算机系统对物料的惟一识别代码.它用一组代码来代表一种物料.物料编码必须是惟一的,也就是,一种物料不能有多个物料编码,一个物料编码不能有多种物料.目录简介意义原则方法注意事项处理特点展开…

python requests get post_python+requests进行get、post方法接口测试

简介&#xff1a;Requests 是用Python语言编写&#xff0c;基于 urllib&#xff0c;采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便&#xff0c;可以节约我们大量的工作&#xff0c;完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的&…

python中config命令_【Python】 配置解析ConfigParser 命令行参数解析optparser

ConfigParserConfigParser包装了配置文件的读取和写入&#xff0c;使得python程序可以更加轻松操作配置文件了。这里的配置文件是指.ini的那种文件&#xff0c;基本格式如下[section_a]a_key1a_value1a_key2a_value2[section_b]b_key1b_value1b_key2b_value2b_key3 b_value3将一…

sata接口测试软件,如何查看电脑是否支持USB 3.0?Hwinfo32检测SATA端口的方法

Hwinfo32检测SATA端口有很多效用&#xff0c;其中我们查看该SATA是否支持USB 3.0就是一个判断&#xff0c;更多的信息是为了了解SATA目前已经可使用的和在使用的端口情况&#xff0c;具体方法可以查看下文中的方法进行判断。Hwinfo32检测SATA端口的方法&#xff1a;1、直接下载…

python中deepcopy函数_Python学习笔记函数之copy()和deepcopy()

随笔记录方便自己和同路人查阅。#------------------------------------------------我是可耻的分割线-------------------------------------------在处理列表和字典时&#xff0c;尽管传递引用常常是最方便的方法&#xff0c;但如果函数修改了传入的列表或字典&#xff0c;你…

常规计算机 符号键是,电脑键盘上的字母和符号都表示什么

键盘上的键可以根据功能划分为几个组&#xff1a;键入(字母数字)键。这些键包括与传统打字机上相同的字母、数字、标点符号和符号键。控制键。这些键可单独使用或者与其他键组合使用来执行某些操作。最常用的控制键是 Ctrl、Alt、Windows 徽标键 和 Esc。功能键。功能键用于执行…

mfc try catch 捕获并显示_你的异常捕获够优雅不?求你别只会try{...} catch{...}了

文章来源 | cnblogs.com/jurendage/p/11255197.html作者 | 巨人大哥软件开发过程中&#xff0c;不可避免的是需要处理各种异常&#xff0c;就我自己来说&#xff0c;至少有一半以上的时间都是在处理各种异常情况&#xff0c;所以代码中就会出现大量的try {...} catch {...} fin…

vue 修改对象的值视图没有发生改变_在vue中处理对象属性改变视图不更新问题? - echart...

...图等等&#xff0c;但是这些代码比较难写&#xff0c;因此我们通常会用借助echarts&#xff0c;那你知道如何使用echarts吗&#xff1f;这篇文章就和大家讲讲echarts的使用方法&#xff0c;有一定的参考价值&#xff0c;感兴趣的朋友可以看看。以饼状图为例&#xff0c;介绍…

五年级计算机教材内容,五年级计算机教学计划

五年级计算机教学计划教育结构不断发生变革&#xff0c;现代教育和教学理论主张对教学计划的结构实行改革。下面是小编为您整理的关于五年级计算机教学计划的相关资料&#xff0c;欢迎阅读&#xff01;五年级计算机教学计划 范例1一、教材分析选用的教材是&#xff0c;浙江摄影…

linux添加用户命令_为Linux的cp和mv命令添加进度条

cp和mv可能是大家日常中使用最多的Linux命令之一。但是有一个突出的问题是这两个命令都不会有任何提示信息&#xff0c;这在操作大文件时候只能干等。可能大家对此已经习以为常&#xff0c;但是其实上也有解决解决方法&#xff0c;本文我们就介绍一个Gnu Coreutils(cp和mv的源代…

date time 分开存储如何合并_关于TDateTime的TDate与TTime合并的问题 | 菲菲的家

遇到TDate与TTime合并为TDateTime的问题&#xff0c;想想应该很容易&#xff0c;没想到发现一个百思不得其解的问题&#xff0c;在这里跟大家分享并求教。比如有两个组件DateTimePicker1和DateTimePicker2&#xff0c;Kind属性分别为dtkDate和dtkTime&#xff0c;一个用来定义T…

unsigned long long 溢出 乘_Java整数相加溢出怎么办?Java8一步搞定

问题在之前刷题的时候遇见一个问题&#xff0c;需要解决int相加后怎么判断是否溢出&#xff0c;如果溢出就返回Integer.MAX_VALUE解决方案JDK8已经帮我们实现了Math下&#xff0c;不得不说这个方法是在StackOverflow找到了的&#xff0c;确实比国内一些论坛好多了~加法public s…

计算机模块word2003和2007,以Word2003的名义熟悉Word2007

相信很多朋友都已经用上了最新的Office2007办公套件&#xff0c;Office2007提供了全新的外观、全新的用户界面&#xff0c;用简单明了的单一机制取代了早期版本中的菜单、工具栏和大部分的任务窗格&#xff0c;从而使用户可以更高效、更容易地找到完成各种任务的合适功能&#…

golang python rpc_golang rpc的两种调用方法

golang的rpc有两种方法进行调用&#xff0c;一种是rpc例子中给的&#xff1a;package mainimport ("net/rpc""net/http""log""net""time")type Args struct {A, B int}type Arith intfunc (t *Arith) Multiply(args *Args, …

二级计算机vf里的sql,计算机等级考试二级VF考点:SQL语言

第4章SQL语言(数据查询)一、投影&#xff1a;SELECT 字段 FROM 表名题目&#xff1a;1. 对职工表进行查询&#xff0c;显示职工的职工号。2. 对职工表进行查询&#xff0c;显示所有信息(即所有字段)。二、选择&#xff1a;SELECT 字段 FROM 表名 WHERE 条件题目&#xff1a;3. …

setstate是同步还是异步_谈谈 IO模型:同步、异步、阻塞、非阻塞

同步/异步、阻塞/非阻塞 说的是一回事儿吗&#xff1f;同步/异步、阻塞/非阻塞 你能通俗易懂的讲清楚吗&#xff1f;Java 中的 BIO、NIO、AIO 你了解吗&#xff1f;Socket 编程你还会吗&#xff1f;Linux 操作系统的 IO 模型你能讲讲吗&#xff1f;01. 生活中的同步/异步、阻塞…

tp获取referer里的域名_thinkPHP的redirect跳转和referer使用的问题

如果从Topic/topic页面跳转到Login/login页面 使用$_SERVER[HTTP_REFERER]后再login页面出来的地址是这样的http://localhost/a/jz/index.php/Home/topic/topic&#xff0c;这个地址没错&#xff0c;为什么我使用redirect跳转后地址栏上的地址就变成了这样http://localhost/a/j…

软件测试要求太高,软件“故障门”频现 对软件测试提出更高要求

随着信息化时代的到来&#xff0c;各行各业已离不开各类应用软件&#xff0c;可是频频爆出的软件“故障门”却成为企业发展的“拦路虎”。为了解决“故障门”&#xff0c;众多IT企业不得不加大软件测试领域的投入&#xff0c;有的试图培养高水平的测试团队&#xff0c;有的则希…

md5会重复吗_如何优雅地处理重复请求(并发请求)

点击上方“服务端思维”&#xff0c;选择“设为星标”回复”669“获取独家整理的精选资料集回复”加群“加入全国服务端高端社群「后端圈」利用唯一请求编号去重你可能会想到的是&#xff0c;只要请求有唯一的请求编号&#xff0c;那么就能借用Redis做这个去重——只要这个唯一…