小编K13*_*K13的帖子

性能:遍历ArrayList数百次,而不是将Arraylist转换为HashMap并返回?

我有两个需要比较和操作的大型(1000多个对象)ArrayList。我本质上需要从ArrayList A中获取一个值,在ArrayList B中查找匹配的对象,然后从B中操作该对象。我需要在A的所有对象中执行此操作。我需要在应用程序中经常执行此操作。订单未知,大小会有所不同。

(pseudocode)
ArrayList<myObject> A
ArrayList<myObject> B
Run Code Online (Sandbox Code Playgroud)

对于A中的每个实体,我都可以遍历B中的每个单个项目,寻找与A中的实体匹配的项目。这似乎效率很低。

(pseudocode)
for (each object in A){loop through all of B and find it}
Run Code Online (Sandbox Code Playgroud)

值得将B转换为HashMap(使用我正在比较的特定值作为键,将对象作为值),然后以这种方式搜索B,然后在完成处理后将该临时HashMap转换回ArrayList。 ?

(pseudocode)
convert B to HashMap<myObject.myValue,myObject> C
for (each object in A){look up the value in C}
convert C back to an ArrayList
Run Code Online (Sandbox Code Playgroud)

这是一个好主意吗?还是这种过早/不必要的优化?谢谢。

(背景:数据从服务中以ArrayList的形式从我那里得到-前端需要一个ArrayList用于视图层。我试图使中间层的处理效率更高-但是入口和出口对象必须是ArrayList(或某些对象)其他清单))

java performance arraylist hashmap

8
推荐指数
1
解决办法
83
查看次数

标签 统计

arraylist ×1

hashmap ×1

java ×1

performance ×1