问题已得到解答。由于其中嵌入了商业成语,因此删除了该帖子。谢谢!
问问题
128 次
1 回答
1
如果 N 是 中的项目数,systemName
M 是 中的项目数systemData
,那么您已经有效地构建了 O(N*M) 方法。
如果您将您的值表示systemData
为 a HashMap
of ,那么您只需遍历集合并查找 by 。这变得更像 O(N+M)。AbstractSystem
AbstractSystem.getSerial()
systemName
systemName.getId()
(您可能希望避免使用 、 、 等变量iter
,iter2
因为temp2
这些变量会使代码更难阅读。)
编辑- 这就是我的意思:
// Retrieve system list from database
HashMap<Integer, AbstractSystem> systemDataMap = new HashMap<AbstractSystem>(
systemService.getSystemDataMap());
// Retrieve system info from cloud API
List<SystemName> systemNames = cloudClass.getImages();
for (SystemName systemName : systemNames) {
if (systemDataMap.containsKey(systemName.getId()) {
System.out.println("This will be slow...");
}
}
我使用 Integer 是因为我无法从您的代码中分辨出AbstractSystem.getSerial()
or的类型SystemName.getId()
。这假设您将系统数据存储为Map
别处。如果没有,您可以在这里自己构建地图。
于 2012-11-05T21:22:24.940 回答