ホームページ > Java > &#&チュートリアル > JavaでHashmapを使用する方法

JavaでHashmapを使用する方法

Mary-Kate Olsen
リリース: 2025-01-25 04:15:09
オリジナル
624 人が閲覧しました

How to Work with HashMap in Java

この包括的なガイドでは、効率的なキーと値のペアの保存と管理のための堅牢なデータ構造である Java の HashMap について説明します。 基本的な方法について説明し、理解を確実にするために実践的な例を示します。


HashMap を理解する

HashMap はデータをキーと値のペアとして保存し、putgetremove などのコア操作に (平均して) 一定時間の複雑さを提供します。 主な利点は次のとおりです:

  • 一意のキー: 各キーは一意である必要があります。値は重複する可能性があります。
  • 多彩なデータ型: キーと値は任意のオブジェクト型にできます。
  • パッケージの場所: java.util パッケージ内にあります。
  • Null の処理: null をキーと値の両方として受け入れます。

例:

<code class="language-java">import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] args) {
        HashMap<Integer, String> myMap = new HashMap<>();

        // Adding entries
        myMap.put(1, "Apple");
        myMap.put(2, "Banana");
        myMap.put(3, "Cherry");

        // Retrieving a value
        System.out.println(myMap.get(1)); // Output: Apple
    }
}</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ハッシュマップの作成

HashMap コンストラクターは簡単です:

<code class="language-java">HashMap<KeyType, ValueType> mapName = new HashMap<>();</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

例:

<code class="language-java">HashMap<String, Integer> wordCounts = new HashMap<>();</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ここで、String はキーのタイプを表し、Integer は値のタイプを表します。


必須の HashMap メソッド

頻繁に使用される HashMap メソッドを詳しく見てみましょう:

1. put(K key, V value)

  • 機能: キーと値のペアを追加します。キーが存在する場合、値が更新されます。
  • 例:
<code class="language-java">import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] args) {
        HashMap<Integer, String> myMap = new HashMap<>();

        // Adding entries
        myMap.put(1, "Apple");
        myMap.put(2, "Banana");
        myMap.put(3, "Cherry");

        // Retrieving a value
        System.out.println(myMap.get(1)); // Output: Apple
    }
}</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

2. get(Object key)

  • 機能: 指定されたキーに関連付けられた値を取得します。キーが存在しない場合は、null を返します。
  • 例:
<code class="language-java">HashMap<KeyType, ValueType> mapName = new HashMap<>();</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

3. getOrDefault(Object key, V defaultValue)

  • 機能: 値を取得します。キーが見つからない場合は、defaultValue.
  • を返します。
  • 例:
<code class="language-java">HashMap<String, Integer> wordCounts = new HashMap<>();</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

4. containsKey(Object key)

  • 機能: マップに指定されたキーが含まれているかどうかを確認します。
  • 例:
<code class="language-java">HashMap<Integer, String> myMap = new HashMap<>();
myMap.put(1, "Apple");
myMap.put(2, "Banana");
myMap.put(1, "Orange"); // Updates value for key 1
System.out.println(myMap); // Output: {1=Orange, 2=Banana}</code>
ログイン後にコピー

5. containsValue(Object value)

  • 機能: マップに指定された値が含まれているかどうかを確認します。
  • 例:
<code class="language-java">System.out.println(myMap.get(1)); // Output: Orange
System.out.println(myMap.get(4)); // Output: null</code>
ログイン後にコピー

6. remove(Object key)

  • 機能: 指定されたキーのエントリを削除し、その値 (見つからない場合は null) を返します。
  • 例:
<code class="language-java">System.out.println(myMap.getOrDefault(4, "Default")); // Output: Default</code>
ログイン後にコピー

7. putIfAbsent(K key, V value)

  • 機能: キーがまだ存在しない場合にのみ、キーと値のペアを追加します。
  • 例:
<code class="language-java">System.out.println(myMap.containsKey(1)); // Output: true
System.out.println(myMap.containsKey(4)); // Output: false</code>
ログイン後にコピー

8. replace(K key, V value)

  • 機能: キーが存在する場合にのみ、キーの値を置き換えます。
  • 例:
<code class="language-java">System.out.println(myMap.containsValue("Orange")); // Output: true
System.out.println(myMap.containsValue("Grape")); // Output: false</code>
ログイン後にコピー

9. keySet()

  • 機能: マップ内のすべてのキーの Set を返します。
  • 例:
<code class="language-java">System.out.println(myMap.remove(1)); // Output: Orange
System.out.println(myMap); // Output: {2=Banana}</code>
ログイン後にコピー

10. values()

  • 機能: マップ内のすべての値の Collection を返します。
  • 例:
<code class="language-java">myMap.putIfAbsent(3, "Cherry"); // No change if key 3 exists
System.out.println(myMap);</code>
ログイン後にコピー

11. entrySet()

  • 機能: すべてのキーと値のペア (Set) の Map.Entry を返します。
  • 例:
<code class="language-java">myMap.replace(2, "Mango");
System.out.println(myMap);</code>
ログイン後にコピー

12. compute(K key, BiFunction remappingFunction)

  • 機能: 提供された関数を使用して値を更新します。
  • 例: (BiFunction 実装が必要)
<code class="language-java">import java.util.HashMap;

public class HashMapDemo {
    public static void main(String[] args) {
        HashMap<Integer, String> myMap = new HashMap<>();

        // Adding entries
        myMap.put(1, "Apple");
        myMap.put(2, "Banana");
        myMap.put(3, "Cherry");

        // Retrieving a value
        System.out.println(myMap.get(1)); // Output: Apple
    }
}</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

13. merge(K key, V value, BiFunction remappingFunction)

  • 機能: 関数を使用して、新しい値と既存の値を結合します。
  • 例: (BiFunction 実装が必要)
<code class="language-java">HashMap<KeyType, ValueType> mapName = new HashMap<>();</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

総合的な例: 単語頻度分析

この例では、単語の頻度をカウントするための HashMap を紹介します。

<code class="language-java">HashMap<String, Integer> wordCounts = new HashMap<>();</code>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

結論

HashMap は基本的な Java データ構造であり、効率的なキーと値のペアの管理を提供します。そのメソッドをマスターすると、単純なデータ検索から高度なデータ操作タスクまで、さまざまなプログラミングの課題に取り組むことができるようになります。 HashMap をプロジェクトに組み込んで、そのパワーと効率を活用してください。

以上がJavaでHashmapを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート