TreeMap - 要素はソートされ
ています HashMap - 要素はソートされていません
したがって、パフォーマンスのためにどのマップを使用する必要があるかを検討する場合はどうすればよいget
でしょうかput
?remove
TreeMap - 要素はソートされ
ています HashMap - 要素はソートされていません
したがって、パフォーマンスのためにどのマップを使用する必要があるかを検討する場合はどうすればよいget
でしょうかput
?remove
HashMap
注文する必要がない限り 、a を使用してください。HashMap
より高速です。
つまり、ジェネリック インターフェイスを宣言として使用することで、切り替えを簡単にすることができます。
Map<String,String> M = new HashMap<String,String>();
...use M lots of places...
次に、1 つの場所を切り替えるだけで、コードで新しいマップ タイプが使用されます。
簡単なタイミング テスト:
import java.util.*;
class TimingTest {
public static void main(String[] args) {
Map<String,String> M = new HashMap<String,String>();
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
M.put(Integer.toString(i), "foo");
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
反復に関して、それはあなたの意図に依存します:
さらに、put/get/remove/containsKey の TimeComplexity の場合:
ギークフォーギークス:
スタックオーバーフロー: