HashMap
get/put
操作はO(1)であると言っています。しかし、それはハッシュ実装に依存します。デフォルトのオブジェクトハッシュは、実際にはJVMヒープの内部アドレスです。 get/put
がO(1)であると主張するのに十分ですか?HashMap get/put複雑度
利用可能なメモリは別の問題です。私がjavadocsから理解しているように、HashMap
load factor
は0.75でなければなりません。 JVMに十分なメモリがなく、load factor
が制限を超えたらどうなりますか?
O(1)は保証されていないようです。それは意味をなさないか、私は何かを逃していますか?
償却された複雑さの概念を調べたいと思うかもしれません。例えば、ここを参照してください:stackoverflow.com/questions/3949217/time-complexity-of-hash-table最悪の複雑さは、ハッシュテーブルの最も重要な尺度ではありません –
修正 - それは_amortized_ O(1) - それを忘れることはありませんあなたはこれらの種類の質問をしません:) –