2つのHashMapsを比較していますが、比較ループの時間の複雑さを把握しようとしています。 次のようにコードがある:ループのハッシュマップの比較実行時間
//map1 is a HashMap and contains m elements and keys
//map2 is a HashMap and contains n elements and keys
List<myObject> myList = new ArrayList<myObject>()
for (String key: map1.keySet()){
if(!map2.containsKey(key)){
myList.add(map.get(key));
}
}
最初O(M)あろう。他のフォーラムでcontainsKey()がlg(n)の時間がかかることがわかりました。誰かがそれを確認できますか?私はJavaDocsでそれを見つけることができませんでした。
もしそうなら、合計時間複雑度は(mlg {n})となる。
また、この比較をより良い方法で実行する方法については、参考にしてください。
ここでのHashMapの実装です:http://www.docjar.com/html/apiは/java/util/HashMap.java.html – blackcompe