Javaオブジェクト指向プログラミング講座

HashMapの使用方法

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
マップ型コレクション、HashMapの使用方法を解説します。
講師:
07:56

字幕

このレッスンでは、Map 型コレクションHashMap の使用方法を解説します。HashMap は検索キーを持つコレクションです。書き方は HashMapそして、キーとクラス型をペアで書きます。右辺のコンストラクタのここは省略可です。書くとしたら、キー, クラス型で、同じものです。これはジェネリクス型ですね。この HashMap はパラメーターにクラス型を指定できます。ダイヤモンド演算子です。省略しています。書くとしたら同じです。Kokyaku の例では社員番号をキーにします。ただし、社員番号は int 型ですけどもInteger 型に変換する必要があります。int 型社員番号のラッパークラスを使います。put() はオブジェクトとキーのペアで追加します。ArrayList は add でしたがHashMap はキーが必要です。キーはクラス型です。基本データ型は使えません。int 型とかは使えません。HashMap<Integer, Kokyakuそして Kokyaku を new して社員番号を getId でint 型で取得してそれを Integer 型に変換しています。そのペアですね。 写真番号のラッパークラスとk0 で put します。Integer 型はint 型のラッパークラスです。ラッパークラスをちょっと見てみますと基本データ型に対して全てラッパークラスというものがあります。だから、ここら辺を検索キーにしたい場合は全部そのラッパークラスに変換する必要があります。今の場合はint を Integer 型に変換しています。この get() の場合はほんとは key で get します。そして key のオブジェクトを取得する。例えば、社員番号 1001 だと1001 はそのまま使えないのでこれを Integer 型にしたオブジェクトですね。その Integer 型のオブジェクトをkey にしてこの kokyakuList から get するとここで社員番号 1001 のオブジェクトが行っていてそれに対してprint() を出すことができます。これは Integer 型ですね。イメージとしては一応、顧客番号です。この横に顧客が入っているんですけども顧客番号はInteger 型に変換しています。こっちは顧客オブジェクトですね。get する時は get(1001) ですけどもこれは int 型じゃなくて顧客番号を Integer 型にしてget する必要があります。 HashMap のプログラムを前回作った arrayList を再利用して作ります。この arrayList を右クリックして「コピー」します。「プロジェクト名」をhashMap とします。フォルダーはそのまま ch06 を使います。そして「コピー」hashMap がここに出来たので「ソース・パッケージ」のarrayList をhashMap に変更します。これを右クリックして「リファクタリング」>「名前の変更」ここを hashMap にします。それで「リファクタリング」こうするとこれが hashMap ですね。それで import ... ArrayList になっていますけどもここを import ... HashMap に変えます。java.util.HashMap です。それで Main の方を作り変えていきます。これを又コメントアウトします。コメントアウトしてこの下に追加していきます。社員番号をキーとするのでHashMap<Integerこれは社員番号です。, Kokyaku kList右辺の方は、ここは省略です。書くとしたらこれと全く同じものです。それで、社員番号を取得する為にゲッターを追加します。 今これゲッターが無いですのでゲッター id を作ります。public int getId(){return id; でゲッターを作っておきます。顧客オブジェクトを1つ作ります。次に、この HashMap にオブジェクトを追加するんですけどput() でまず、この k0.getId() です。まず k0 の顧客番号をゲットしてそれを Integer 型に変換します。それをキーとします。そして2つ目に、右の方にk0 オブジェクトを書きます。そうすると k0 は顧客番号でget することができます。もう1つオブジェクトを追加します。今度は k1 としました。もうちょっと追加してみましょう。4人追加しました。次はこれを print で表示してみます。拡張 for 文を使います。Integer i : kList.keySet()こういう keySet という便利なメソッドがあるんですけどもここのキーを全部取り出します。それの全てについてfor を回します。すると kList.get(i) ですね。get(i) はこの Integer の i です。それに対して print はこれを全てやります。 これで実行をかけてみましょう。これで4人分出てきました。ArrayList と結果は同じです。また、1行空けるように println を追加します。これで実行をかけます。すると、4人分出てきました。サイズも表示します。サイズは size というメソッドで表示できます。これで実行をかけてみましょう。すると4人分出てきて「サイズ=4」となりました。このレッスンでは、Map 型コレクションHashMap の使用方法を解説しました。

Javaオブジェクト指向プログラミング講座

このコースではオブジェクト指向プログラミングの3大特徴である「カプセル化」「継承」「多態性」を、UMLモデルとJavaプログラムを対比しながら解説します。「カプセル化」ではコンストラクタや可視性、「継承」ではUML汎化関係とJavaの関係、「多態性」では継承およびインタフェースによるプログラミング方法などを説明します。

3時間23分 (36 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2016年09月27日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。