gpt4 book ai didi

java - java中哈希表构造函数的性能

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:07 25 4
gpt4 key购买 nike

我正在研究a coding problem on codeeval使用Java,其中我使用哈希表来存储将基数转换为罗马数字的基本映射,如下所示:

{1: 'I', 5: 'V', 10: 'X', 50: 'L', 100: 'C', 500: 'D', 1000: 'M'}

我尝试使用两种不同的方法构建哈希表,但根据 Codeeval 的分析器得到了截然不同的性能结果。第一个是:

Hashtable<Integer, String> match = new Hashtable<Integer, String>(){{
put(1, "I");
put(5, "V");
put(10, "X");
put(50, "L");
put(100, "C");
put(500, "D");
put(1000, "M");
}};

我从 Codeeval 的分析器获得的运行时间为 172 毫秒,使用了 8347648 字节内存空间,而如果我将代码更改为:

Hashtable<Integer, String> match = new Hashtable<Integer, String>();
match.put(1, "I");
match.put(5, "V");
match.put(10, "X");
match.put(50, "L");
match.put(100, "C");
match.put(500, "D");
match.put(1000, "M");

后一个方法的运行时间为137 ms,使用了8212480 Bytes内存空间。程序中的所有其他代码都是相同的。

为什么代码的这一微小变化会导致如此大的差异?任何帮助将不胜感激。

最佳答案

CodeEval 的探查器在不同语言之间(以及在其网站更新之间)工作的一致性有很大差异 - 目前在 CodeEval 上使用 Java,当您多次上传相同解决方案时,您将看到这些类型的毫秒和内存变化。例如,我刚才几次上传了我的Java解决方案到罗马数字,ms分数从140到188,内存分数从8310784到9158656。

关于java - java中哈希表构造函数的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com