【MapとListについて】
【Mapにつて】
Mapとは、連想配列のことであり、keyとvalueをペアとして保持するクラスです。
valueを追加する時にキーを設定し、keyを使ってvalueを検索・取得が可能になります。
【Listについて】
Javaには、配列という、複数のオブジェクトを管理する仕組みがありますが、事前に要素数を決めなければならず、様々な処理がかかる要素に対しての管理には適してるとはいません。。。
そこでListです。
Listは、格納された要素を順番にインデックスを付けて管理することが特徴です。他にも、重複したデータでも格納できる、既存のインデックスを指定して割り込ませるようなデータ追加が可能です。
【MapとListの違い】
Mapはインデックスとなるkeyとそのデータとなるvalueの両方を定義することができます。keyには整数値のほかにString型などの変数なども指定することができます。keyに指定した変数から、valueを呼び出すことができます。
なお、Mapのキーは重複させることはできません。これに対して、Listは要素を格納した順に自動的に整数値のインデックスが生成され、値と紐づけされます。
Listの要素はインデックス番号を指定して、値を呼び出します。keyと関連付けて値を保持する必要がある場合はMapが適しています。
また、Listは要素の値で並び順を替えるソートができますが、Mapはそのままではできません。
【定義の仕方】
MapもListもインターフェースで、インスタンスを生成することができませんが、オブジェクトは宣言できます。
それぞれのインターフェースを実装したクラスのインスタンスをオブジェクトに格納していおり。
基本的に、MapはHashMapクラスを、ListはArrayListクラスといった、インターフェースを実装したクラスを使用しています。
Map<String, Integer> map = new HashMap<>();
List<String> list = new ArrayList<>();
今回は、MapとListの違いと、実装方法まで書いてみました。
応用としてMapのkeyやvalueをList化させたり、Listの値をMapのkeyやvalueにしたりと、いろいろ関連の深い機能なので、興味があったら是非使ってみて下さい。