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。
總結
以上是生活随笔為你收集整理的map集合的putall_Map.put和Map.putAll方法之间的区别?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python支持函数式编程么_Pytho
- 下一篇: vue 修改对象的值视图没有发生改变_在