我目前正在做一个 Java 项目,我有一个特定的场景,我需要对一组对象执行操作。我想知道哪种方法在性能方面会更有效。
假设我有一个
x
类型的对象数组A
,每个对象A
都引用了一个B
类型的对象作为成员(A.c.b
)。我需要对每个B
对象执行一些操作。
方法 1:创建地图然后迭代它
Map<A, B> map = new HashMap<>();
for (A a : x) {
map.put(a, a.c.b);
}
for (Map.Entry<A, B> entry : map.entrySet()) {
entry.getValue().dosomeoperation();
}
方法二:直接对对象进行操作
for (A a : x) {
a.c.b.dosomeoperation();
}
我知道方法 2 消除了创建和填充地图的开销,但我不确定这两种方法之间的实际性能差异。有专业知识的人可以对此有所了解吗?
在我的具体情况下,
x
数组的大小可能会有所不同,我有兴趣优化我的代码的性能。了解这些方法的潜在性能影响以及我在做出决定时应该考虑的任何因素将很有帮助。
任何见解或替代建议将不胜感激。提前谢谢你!