【Hashmap】初心者必見!Javaで連想配列を使う方法について解説。
  • facebookページ
  • twitterページ
  • 2019.09.19

    【Hashmap】初心者必見!Javaで連想配列を使う方法について解説。

    Javaについても配列操作は比較的初期の段階で学習する項目の一つですが、今回はこの配列操作のうち「HashMapクラスを使って連想配列を操作する」方法について解説していきます。

    Mapインターフェース

    JavaにはMapというインターフェースが存在します。

    このMapインターフェースはキーを値にマッピングするオブジェクトです。Mapには同一のキーを複数登録できません。また各キーは1つの値にしかマッピングできません。

    連想配列を扱うためにはこのMapインターフェースを実装しているTreeMapクラスやHashMapクラス、LinkedHashMapクラスを使用します。

    クラスの特徴

    Mapインターフェースの中にはHashMapクラスの他、TreeMapクラスやLinkedHashMapクラスがあることは先ほどもご説明しましたが、まずはこれらの違いについてまとめておきます。

    クラスの特徴
    • HashMapクラスはキーからハッシュ値を算出して管理するため、順序は保証されない
    • TreeMapクラスはキーによってソートされるため、順序を保証する
    • LinkedHashMapクラスはデフォルトでは挿入された順番を保持するが、コンストラクタの第3引数にtrueを設定するとアクセス順で要素を保持できる

    HashMapクラス

    宣言方法

    まずはHashMapクラスを使用するためにインスタンスを生成する必要が有ります。

    HashMapクラスの宣言は以下のように記述します。

    型推論により右辺のデータ型は省略出来ますので覚えておいてください。

    なお値にはList/Set/Mapを持たせることができ、キーにはクラスを指定することも可能です。

    メソッド

    この項目では主要なメソッドを紹介します。

    メソッド 使い方
    Map.put(key, value) マップを追加する。
    Map.get(key) マップを取得する。
    Map.remove(key) マップを削除する。
    Map.clear() マップの要素を全て削除する。
    Map.containsKey(key) 指定したKeyが存在する場合はTrue、存在しない場合はfalseを返す。
    Map.size() マップの長さを取得する。
    Map.entrySet() KeyとValueをセットで取得する。
    Map.keySet() Keyのみを取得する。
    Map.values() Valueのみを取得する。

    使い方

    では実際のコードを見てみましょう。

    値を追加する

    Mapに値を追加するには、HashMapクラスで用意されているputメソッドを使用します。

    putメソッドは第一引数にキーを指定し、第二引数にキーに関連付けられる値を指定します。

    またブロックを使って次のように記述することも出来ますが、この場合にはダイヤモンド演算子が使えず型引数を省略出来ません。

    なお既にキーがマッピングされている場合には上書きされ、マッピングが無い場合には”null”を返します。

    値を取得する

    Mapの値は、getメソッドを使用してMapのキーを指定することで取得できます。

    実行結果

    キーを全て取得する

    keySetメソッドを使用すると、Mapのキーを全て取得することが出来ます。

    keySetメソッドはMapのキーをSet型で返すので、拡張for文を使って以下のように繰り返すことで全てのキーを取得できます。

    実行結果

    値を全て取得する

    valuesメソッドを使用すると、Mapの値を全て取得することが出来ます。

    valuesメソッドもMapのキーをSet型で返すので、拡張for文を使えばkeySetメソッドのように全ての値を取得できます。

    実行結果

    キーと値をペアで全て取得する

    Map.Entryインタフェースに実装されているentrySetメソッドを使用することで、キーと値をペアで取得できます。

    Map.EntryはgetKeyメソッドでキーを、getValueメソッドで値を取得することができます。

    entrySetメソッドはMap.EntryをSet型で返すので、拡張for文を使って以下のように繰り返すことで取得できます。

    実行結果

    forEachを使った取得

    MapインターフェースにはdefaultメソッドとしてforEachメソッドが定義されています。

    次のように定義されているため、2つの引数を必要とします。

    forEachメソッドを使ったコードは以下の通りです。

    実行結果

    まとめ

    今回はHashmapを使った連想配列の操作について解説しました。

    連想配列の使用頻度はかなり高いので何度も繰り返し練習し必ずマスターするようにしましょう。


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE

    ポテパンおすすめ案件