Javaのハッシュマップとは何ですか? 例で説明

公開: 2021-07-02

HashMapは、Javaのコレクションクラスです。 キーと値のペアを格納するために使用できます。 そのパフォーマンスは、初期容量と負荷率によって異なります。 HashMapには、ハッシュテーブルのデータ構造を使用できるようにするさまざまなメソッドがあります。

次の記事では、HashMapとは何かを探り、例を通してそのさまざまなコンストラクターについて学びます。

目次

HashMapとは何ですか?

HashMapは、Mapに基づくコレクションクラスです。 キーと値のペアを格納するために使用します。 HashMapJavaをHashMap<K、V>と表記します。ここで、Kはキーを表し、Vは値を表します。

HashMapはHashtableクラスに似ています。 2つの違いは、HashMapが同期されていないのに対し、Hashtableは同期されていないことです。 また、Hashtableとは異なり、HashMapはnull値とnullキーを許可します。

HashMapは順序付けられたコレクションではないため、キーと値を挿入した順序で返しません。 また、HashMapは保存されたキーと値をソートしません。 HashMapクラスとそのメソッドを使用する場合は、java.util.HashMap(またはそのスーパークラス)をインポートする必要があります。

HashMapは、JavaのMapインターフェースの簡単な実装を提供します。 別のタイプ(整数など)のインデックスを使用して、HashMapを介して保存したキーと値のペアにアクセスできます。 重複するキーを使用すると、関連するキーの要素が置き換えられることに注意してください。 また、使用できるnullキーオブジェクトは1つだけです。 ただし、null値はいくつでも存在する可能性があります。

HashMapは、Cloneable、Serializable、Map <K、V>インターフェースを実装します。 AbstractMap <K、V>クラスを拡張し、その直接のサブクラスはPrinterStateReasonsとLinkedHashMapです。

HashMapの機能

HashMapの主な機能は次のとおりです。

  • これは、java.util.packageのコンポーネントです。
  • 重複する値を使用できますが、HashMapでは重複するキーは許可されていません。 つまり、1つのキーに複数の値を設定することはできませんが、複数のキーに1つの値を設定することはできます。
  • nullキーは1回しか使用できませんが、さまざまなnull値を使用できます。
  • HashMapは、マップの順序に関する保証を提供しません。 したがって、順序が一定のままであるかどうかは保証されません。
  • HashMapはHashtableと非常に似ていますが、唯一の違いはHashMapが同期されていないことです。
  • HashMapは、SerializableandCloneableインターフェイスを実装します。

HashMapコンストラクター

HashMapには4つのコンストラクターがあります。

1. HashMap()

HashMap()は、負荷率が0.75で初期容量が16のインスタンスを作成するデフォルトのコンストラクターです。

// HashMap()コンストラクターがどのように機能するかを示す

java.io.*をインポートします。

importjava.util。*;

クラスAddElementsToHashMap{

public static void main(String args [])

{{

//言及する必要はありません

//ジェネリック型を2回

HashMap <整数、文字列> hm1 = new HashMap <>();

//ジェネリックスを使用してHashMapを初期化する

HashMap <整数、文字列> hm2

= new HashMap <Integer、String>();

//putメソッドを使用して任意の要素を追加します

hm1.put(1、“ A”);

hm1.put(2、“ B”);

hm1.put(3、“ C”);

hm2.put(4、“ D”);

hm2.put(5、“ E”);

hm2.put(6、“ F”);

System.out.println( "hm1の結果は次のとおりです:"

+ hm1);

System.out.println( "HashMap hm2の結果は次のとおりです:"

+ hm2);

}

}

出力

hm1の結果は次のとおりです:{1 = A、2 = B、3 = C}

hm2の結果は次のとおりです:{4 = D、5 = E、6 = F}

2. HashMap(int initialCapacity)

HashMap(int initialCapacity)は、負荷が0.75で特定の初期容量を持つインスタンスを作成します。

// HashMap(int initialCapacity)コンストラクターがどのように機能するかを示す

java.io.*をインポートします。

importjava.util。*;

クラスAddElementsToHashMap{

public static void main(String args [])

{{

//言及する必要はありません

//ジェネリック型を2回

HashMap <整数、文字列> hm1=新しいHashMap<>(10);

//ジェネリックスを使用してHashMapを初期化する

HashMap <整数、文字列> hm2

=新しいHashMap<整数、文字列>(2);

//putメソッドを使用して任意の要素を追加します

hm1.put(1、“ A”);

hm1.put(2、“ B”);

hm1.put(3、“ C”);

hm2.put(4、“ D”);

hm2.put(5、“ E”);

hm2.put(6、“ F”);

System.out.println( "hm1の結果は次のとおりです:"

+ hm1);

System.out.println( "HashMap hm2の結果は次のとおりです:"

+ hm2);

}

}

出力

hm1の結果は次のとおりです:{1 = A、2 = B、3 = C}

hm2の結果は次のとおりです:{4 = D、5 = E、6 = F}

3. HashMap(int initialCapacity、float loadFactor)

HashMap(int initialCapacity、float loadFactor)は、特定の負荷率と初期容量を持つインスタンスを生成します。

// HashMap(int initialCapacity、float loadFactor)コンストラクターがどのように機能するかを示します

java.io.*をインポートします。

importjava.util。*;

クラスAddElementsToHashMap{

public static void main(String args [])

{{

//言及する必要はありません

//ジェネリック型を2回

HashMap <整数、文字列> hm1

=新しいHashMap<>(5、0.75f);

//Genericsを使用してHashMapを初期化します

HashMap <整数、文字列> hm2

=新しいHashMap<整数、文字列>(3、0.5f);

//putメソッドを使用して要素を追加します

hm1.put(1、“ A”);

hm1.put(2、“ B”);

hm1.put(3、“ C”);

hm2.put(4、“ D”);

hm2.put(5、“ E”);

hm2.put(6、“ F”);

System.out.println( "hm1の結果は次のとおりです:"

+ hm1);

System.out.println( "HashMap hm2の結果は次のとおりです:"

+ hm2);

}

}

出力

hm1の結果は次のとおりです:{1 = A、2 = B、3 = C}

hm2の結果は次のとおりです:{4 = D、5 = E、6 = F}

4. HashMap(マップマップ)

HashMap(Map map)は、指定したマップと同じマッピングを持つインスタンスを作成します。

// HashMap(Map map)コンストラクターがどのように機能するかを示す

java.io.*をインポートします。

importjava.util。*;

クラスAddElementsToHashMap{

public static void main(String args [])

{{

//言及する必要はありません

//ジェネリック型を2回

Map <整数、文字列> hm1 = new HashMap <>();

//ジェネリックスを使用してHashMapを初期化する

HashMap <整数、文字列> hm2

=新しいHashMap<整数、文字列>(hml);

//putメソッドを使用して任意の要素を追加します

hm1.put(1、“ A”);

hm1.put(2、“ B”);

hm1.put(3、“ C”);

hm2.put(4、“ D”);

hm2.put(5、“ E”);

hm2.put(6、“ F”);

System.out.println( "hm1の結果は次のとおりです:"

+ hm1);

System.out.println( "HashMap hm2の結果は次のとおりです:"

+ hm2);

}

}

出力

hm1の結果は次のとおりです:{1 = A、2 = B、3 = C}

hm2の結果は次のとおりです:{4 = D、5 = E、6 = F}

Javaの詳細

Javaには、HashMap以外にも多くのクラスがあります。 これらの各クラスの要点、それらの使用法、およびJavaでの統合について自分で学ぶことは非常に困難です。 このプロセスを実行するための最良の方法は、コンピュータサイエンスコースを受講することです。

専門的なコースを受講すると、構造化されたカリキュラムを通じて必要なスキルと概念を習得することができます。 さらに、このようなコースでは、ビデオ、ライブセッション、オンラインレクチャーによって促進される没入型の学習体験が提供され、理論的な基礎を理解しやすくなります。

LJMU(リバプールジョンムーア大学、英国)およびIIIT-B(国際情報技術研究所、インド)に関連して提供されるコンピュータサイエンスの理学修士プログラムを確認できますこのコースは、500時間以上のコンテンツ、10以上のライブ講義、および30以上のケーススタディをカバーしています。

この19か月のコースは、価値志向の高いグローバルな学習体験をお約束します。 最大の付加価値は、世界中の仲間とつながり、交流できるという事実にあります。 upGradは、85か国以上に40,000人以上の有給のグローバル学習者がいることを誇っています。 その結果、あなたはあなたの全体的な見通しを広げる新しい文化、新しい意見、そして新しい視点にさらされます。 それだけでなく、あなたはLJMUとIIIT-Bの専門家のメンターによって訓練されており、彼らはあなたの疑問を解決するのを助けるために献身的で個人的な支援を提供します。

これらの利点に加えて、このプログラムは、業界のメンターシップ、ネットワーキングの機会などを含む360度のキャリア支援を提供します。

結論

この記事では、HashMapとは何か、そのさまざまなコンストラクター、および例を通じてそれらを実装する方法を学びました。 HashMapにはJavaのアプリケーションがたくさんあります。HashMapを使用して、アイテムを追加、削除、および必要に応じて管理できます。

HashMapのこのガイドについてどう思いますか? 以下のコメントセクションでそれらを共有してください。

自分をスキルアップして未来に備える

LJMUからソフトウェアエンジニアリングコースに今すぐ申し込む