質問は回答済みです。ビジネス慣用句が埋め込まれているため、投稿を削除します。ありがとう!
質問する
128 次
1 に答える
1
N が の項目数でsystemName
、M が の項目数であるsystemData
場合、O(N*M) メソッドを効果的に構築したことになります。
代わりにをby値systemData
として表す場合は、コレクションをループして を参照するだけです。これは O(N+M) のようになります。HashMap
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...");
}
}
AbstractSystem.getSerial()
コードからorの型がわからないため、Integer を使用しましたSystemName.getId()
。これは、システム データを別の場所に保存することを前提としていますMap
。そうでない場合は、ここで自分でマップを作成できます。
于 2012-11-05T21:22:24.940 に答える