【发布时间】:2009-10-31 02:11:49
【问题描述】:
我得到了一些 可爱的 Java 代码,其中包含很多类似的东西(在一个执行大约 150 万次的循环中)。
code = getCode();
for (int intCount = 1; intCount < vA.size() + 1; intCount++)
{
oA = (A)vA.elementAt(intCount - 1);
if (oA.code.trim().equals(code))
currentName= oA.name;
}
我会看到从切换到类似以下内容的速度显着提高
code = getCode();
//AMap is a HashMap
strCurrentAAbbreviation = (String)AMap.get(code);
编辑: vA 的大小约为 50。修剪不应该甚至是必要的,但调用 50 次而不是 50* 肯定会很好150万。 vA 中的项目是唯一的。
编辑:在几位响应者的建议下,我对其进行了测试。结果在底部。谢谢大家。
【问题讨论】:
-
你也可以通过使用泛型来摆脱丑陋的演员阵容:声明你的 HashMap 是从字符串到 A。
-
我喜欢循环中使用基于 1 的循环索引的部分,通过测试 intCount
-
vA 中的元素是否应该是唯一的?
-
这是在 Java 1.4 中,所以很遗憾没有泛型。一旦我们升级,我就会转换(我希望很快!)。
标签: java optimization hashmap