Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでのHashMapとTreeMapの違い


この投稿では、Javaに関連するハッシュマップとツリーマップの違いを理解します。

ハッシュマップ

  • Javaのハッシュテーブルです。

  • これは、「マップ」インターフェースの実装に基づいています。

  • 「Map」、「Cloneable」、および「Serializable」インターフェースを実装します。

  • 単一のヌルキーを許可します。

  • また、複数のnull値を許可します。

  • ツリーマップと比較して高速です。

  • これは、「get」や「put」などの操作に対して一定時間のパフォーマンス、つまりO(1)を提供するためです。

  • キーの並べ替えは実​​行されません。

  • したがって、HashMapで異種要素を使用できます。

  • 要素の順序は維持されません。

  • ソートされた順序のキーと値のペアが必要ない場合に使用できます。

  • Objectクラスの「equals」メソッドを使用してキーを比較します。

  • Mapクラスの「equals」メソッドはそれをオーバーライドします。

  • 「KeySet」、「get」、「put」などの基本的なメソッドのみが含まれています。

ツリーマップ

  • これは、Javaで使用されるツリー構造です。

  • これは、「マップ」インターフェースの実装に基づいています。

  • 「NavigableMap」、「Cloneable」、および「Serializable」インターフェースを実装しています。

  • nullキーは許可されません。

  • 複数のnull値を許可します。

  • ソートされているため、キーとして同種の値を使用できます。

  • add()、remove()、contains()などのほとんどの操作でO(log(n))の複雑さを提供するため、HashMapと比較して低速です。

  • 内部では赤黒木を使用しています。

  • 赤黒木は平衡二分探索木です。

  • compareTo()メソッドは、キーを比較するために使用されます。

  • tailMap()、firstKey()、lastKey()、pollFirstEntry()、pollLastEntry()などの多くの機能があります。

  • 要素は昇順で並べ替えられます。これは自然順序とも呼ばれます。

  • 要件がソートされた順序のキーと値のペアである場合に使用されます。


  1. Javaでのイテレータと列挙の違い

    IteratorとEnumerationはどちらも、コレクションの要素をトラバースしてアクセスするためのカーソルです。どちらもコレクションフレームワークに属しています。列挙は、コレクションフレームワークのJDK1.2バージョンのJDK1.0およびIteratorで追加されました。 コレクション内の要素への読み取り専用アクセス権があるため、列挙型はコレクション内の構造を変更できません。次の方法があります: * hasMoreElements() * nextElement() 一方、イテレータはコレクション内の要素を読み取って削除できます。以下の方法があります- * hasNe

  2. JavaでのArrayListとHashSetの違い

    HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり