2012-02-16 13 views
2

私は2つのハッシュマップを持っています。両方の地図に共通の値を見つけたいと思います。 1つの方法は、最初のマップを反復し、値を取得し、その値を繰り返しを通して他のマップの値と一致させることです。しかし、これには多くの時間がかかります。最も速い方法で共通の値を見つける他の方法はありますか?できるだけ速く2つの異なるマップから共通の値を取得するにはどうすればよいですか?

+1

は、実行時間などの高速または高速呼び出すことができますより少ない量のコードとして?少なくとも、地図の1つの値をすべて列挙するよりも、交差点を高速に取得することができないためです。 – Tudor

+0

@Tudorは正しいですが、以下の答えのどれもが時間の面でより速くはありません。どんな解決策でも、あるマップを使って反復し、他のマップをルックアップする必要があります。 1つの最適化は、より小さなマップを反復することですが、それだけです。 – Gray

答えて

2

firstMap.keySet().retainAll(secondMap.keySet())あなたは何をしますか?

私はまだこれが本当に最速の方法であると確信していません。おそらく、あなたがこれらの2つのマップの母集団を制御できる場合、データ集団の間に共有キーを蓄積する3番目のマップを作成できますか?

0

はこれを試したことがない、と私はそのが速いかどうかになるだろうかどうかわからないが、あなたはHashSetsにハッシュマップの変換を検討し、その後Set1.retainAll(SET2)

関連する問題