「言葉で配列を操作する」連想配列とは?HashMapの使い方
- ツイート
-
- 2018/02/03
プログラムで複数のデータを扱うときには配列を用いますが、配列要素に格納されているデータを参照する際は、要素を添え字(インデックス)で指定する必要がありました。しかし、Javaの連想配列では、その代わりに言葉(文字列)で指定します。
今回は文字列で配列を操作する連想配列の概要と、HashMapの使い方についてご紹介します。
IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。
目次
連想配列とは
Javaでは、配列の各要素に格納したデータを「配列名[インデックス]」で参照できます。ただし、インデックスでしか参照できないため、データと関連する名前でデータを探すといった使い方はできません。こうした問題点を解決する仕組みが連想配列です。Javaでは連想配列を実現するためにHashMapというクラスを持っています。
連想配列ではインデックス部分に文字列(キー)を設定し、キーに対応する要素のデータを参照します。データの追加や削除もキーを使って行います。連想配列はデータと文字列を関連づけて管理できるため、データの管理がしやすいというメリットがあります。
HashMapとは
HashMapを使うことで格納されたデータとキーがひもづけられ、参照できるようになります。配列要素に同じデータが存在してもかまいません。なお、既存キーの要素にデータを格納した場合、元のデータは上書きされます。
例えば、商品の販売価格をデータ、商品名をキーとして設定した場合、商品名から販売価格を参照することができます。「150」というデータに対して「キャベツ」、「500」というデータに対して「レタス」とキーを設定すれば、「キャベツ」から「150」、「レタス」から「500」というデータを参照可能です。
JavaのHashMapは「ハッシュ表」と呼ばれる配列を用意し、この中でキーの管理を行っています。ハッシュ表のサイズはあらかじめ決まっており、初期値は16です。格納するデータが12個(=初期値16×負荷係数0.75)を超えると、ハッシュ表の拡張が行われるため、データあふれを心配する必要はありません。
しかし、極端なサイズの拡張はパフォーマンスの低下につながるため、サイズが分かっているときはサイズを設定することをおすすめします。
HashMapの使い方
HashMapの具体的な使い方を理解するため、ここでは野菜の販売価格を野菜の名前にひもづけ、格納や取り出し、削除を行ってみます。なお、HashMapを使うときは、java.util.HashMapのインポートが必要です。
HashMapクラスのオブジェクトを作成
最初にHashMapクラスのオブジェクトを作成します。
【例】
int型のキーとString型のデータを持つオブジェクトmapを作成
HashMap<int, String> map = new HashMap<int, String>();
HashMapクラスのオブジェクトの作成と併せて、ハッシュ表のサイズを指定する場合は右辺のかっこに整数値を記述します。
【例】
上記と同じ条件で、ハッシュ表のサイズを50に設定
HashMap<int, String> map = new HashMap<int, String>(50);
データの格納と取り出し
データの格納にはputメソッド、取り出しにはgetメソッドを用います。putメソッドではキーを第1引数、データを第2引数に指定します。一方、getメソッドではキーを引数に指定します。
【例】
map.put("キャベツ",150);
map.put("レタス",500);
map.get("キャベツ");
map.get("レタス");
データの削除
データを削除するときはremoveメソッドを用います。キーを引数に指定します。
【例】
map.remove("キャベツ");
map.remove("レタス");
おわりに
連想配列は、データを効率良く管理できる便利な機能です。ぜひ使いこなせるようになりましょう。実際にコードの記述と実行結果の確認を繰り返し、連想配列の仕組みをしっかりと理解することが大切です。
インターネット・アカデミーでは、業界の第一線で活躍するプログラマーから、開発現場で役立つ実践的知識を学ぶことができます。Javaを勉強してキャリアアップをしたいという方は、Java講座の受講をご検討ください。