当使用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。

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

  1. 【Groovy】map 集合 ( 根据 Key 获取 map 集合中对应的值 | map.Key 方式 | map.‘Key’ 方式 | map[‘Key’] 方式 | 代码示例 )

    文章目录 一.根据 Key 获取 map 集合中对应的值 1.通过 map.Key 方式获取 map 集合中的值 Value 2.通过 map.'Key' 方式获取 map 集合中的值 Value 3 ...

  2. Pandas中map,applymap和apply方法之间的区别

    本文翻译自:Difference between map, applymap and apply methods in Pandas Can you tell me when to use these ...

  3. string转map集合_[系列文章] Go - Map 集合

    概述 Map 集合是无序的 key-value 数据结构. Map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型, ...

  4. java map集合排序的_Java对Map集合进行排序

    Java对Map集合进行排序 实现 Comparator 接口,重写compare方法,完成自定义排序 int compare(Object o1, Object o2) 返回一个基本类型的整型 如果 ...

  5. java遍历map集合传值,不同方式遍历Map集合(全)

    今天一朋友问我有关map集合的遍历问题,说真的当时真是懵了似懂非懂的,下面我通过查阅资料,具体内容整理如下: public static void main(string[] args){ map m ...

  6. forEach、map、filter、some、every、find之间的区别

    前言: 从一开始学了javascript中的for循环遍历方法,到后来了解到forEach.vue中的v-for.map等方法,经常会搞不清楚其中的区别,今天就来粗略的解释一下, for循环我就不说了 ...

  7. java中redis存储map集合_使用RedisTemplate存储Map集合的一点注意

    SpringBoot框架无需进行复杂整合,可使用SpringBoot依赖所引入的 org.springframework.data.redis.core.RedisTemplate来直接进行操作,但需 ...

  8. java list map嵌套_java Map集合嵌套,value为Map和value为List

    欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 * 结果yingyong这个key对应的value集合是null * 遍历Map的时候还会出现空指针错误 */ //jiSu ...

  9. Map.putAll方法——追加另一个Map对象到当前Map集合

    该方法用来追加另一个Map对象到当前Map集合对象,它会把另一个Map集合对象中的所有内容添加到当前Map集合对象. 语法  putAll(Map<? extends K,? extends V ...

最新文章

  1. js layui 模板属性 添加_layui.laytpl--模板引擎文档
  2. ubuntu16.04安装retext,第一行图标flie,edit,help没有,其它图标也不显示?
  3. 显示照片的RGB直方图
  4. 信息学奥赛一本通 提高篇 第5章 矩阵乘法
  5. Qt之加减乘除四则运算-支持负数
  6. python绘制双正切激活函数
  7. virus test
  8. 用for打印菱形java_Java 动态打印菱形代码之for循环的使用
  9. Android:沉浸式状态栏(二)集成
  10. mysql 去空格_MySQL基本命令操作
  11. 基于CarMaker的C-NCAP主动安全系统试验仿真(二)
  12. 汉仪字体安装后PPT找不到_字体不知道去哪下载?我教您
  13. 曼昆 宏观经济学 笔记
  14. 官方VM tools下载地址
  15. Maven(六)Maven传递性和依赖性
  16. macOS Big Sur 11.2.3 (20D91) 虚拟机 ISO 镜像
  17. 大数据编程语言 Scala 进阶篇
  18. GitHub 颜值这么高的播放器,太爱了!
  19. “价值投资高峰论坛”直播实录
  20. 计算机键盘被锁怎么解,电脑键盘锁了怎么解锁 电脑键盘解锁方法【详解】

热门文章

  1. vs2012里用easyUI,显示不正常
  2. Sybase常见问题
  3. 三星台式机计算机编号怎么看,三星笔记本如何查看型号
  4. 紫光展锐处理器有那些手机用_酷派将发千元5G手机,国产紫光展锐加持,主打性价比...
  5. JavaScript中的“ this”关键字
  6. ruby中、.reject_Ruby中带有示例的Array.reject方法
  7. stl vector 函数_vector :: back()函数以及C ++ STL中的示例
  8. 建立单链表 单链表的插入_单链列表插入
  9. obj.val 非数组_在Ruby中使用Array.new(size,obj)创建数组
  10. sql服务器默认密码_搭建一个DNS服务器,轻松实现域名解析内容分发,访问速度提高N倍...