Vitalii:
Javaでは、私が作成したときset
とSet.of()
かmap
とMap.of()
の時間複雑で何contains
とget
操作?それはO(1)ですか?
スチュアート・マークス:
Set.of
そしてMap.of
APIはJDK-プライベート実装のインスタンスを返します。これらの実装の性能は仕様によって保証されていません。しかし、APIは、パフォーマンス文を作ることができるかについての具体的な実装を返しません。したがって、質問は合理的であり、そのような「何がのパフォーマンスであるとして、(架空の)問題とは区別されますMap.get
?」これは多くの異なるありますので、貧しい人々の問題であるMap
実装が。
いずれの場合においても後ろに、実装Set.of
(2つよりサイズより大きい場合)とMap.of
(よりもサイズの大きい場合)、単純なオープン衝突解決のためプロービング線形でスキームをハッシング対処使用。Set.contains
そしてMap.get
操作はO(1)の要素(キー)ハッシュが合理的に分布している場合です。