Javaでリストを使わなければならなくなったため、データ構造の復習をする。参考サイトは以下の通り。
・Javaを使うなら必ず覚えておきたいデータ構造 -配列・リスト・マップ
#1. 配列
##1.1 配列の宣言
配列は複数のデータをまとめて扱うためのデータ構造。配列を利用するためには、生成時に格納するデータ数を宣言する必要がある。後からサイズを変更することは不可能。
データの型[] 配列名 = new データの型[配列の長さ]; //配列の宣言
##1.2 配列にデータを格納
配列にデータを格納する時は、配列名とindex番号を指定する必要がある。int型のnumbersにデータを格納してみる。
int[] numbers = new int[3];
numbers[0] = 5;
numbers[1] = 200;
numbers[2] = 320;
この書き方は面倒くさいので、省略することが可能である。
int[] numbers = {5, 200, 320};
配列に値を代入しない場合は、自動的に値が代入される仕組みとなっている。(int型の場合、0が代入される)
##1.3 配列からデータを取得
配列からデータを取得する時は、格納する時と同様に配列名とindex番号を用いて、取得する。
for(int i = 0; i < numbers.length; i++){
System.out.println(numbers[i]);
}
#2. リスト
リストも配列と同様に、複数のデータを扱うためのデータ構造である。しかし、配列とは異なり、リストの長さを指定する必要がない。つまり、リストの長さは可変である。リストを扱う際には、ソースファイルの最初にpackageをimportする必要がある。
import java.util.*;
##2.1 リストの宣言
リストを宣言するには、格納するデータの型とリスト名を指定する。
List<データの型> リスト名 = new ArrayList<データの型>();
##2.2 リストにデータを格納
リストにデータを格納する時は、リストが持つaddメソッドを用いる。
リスト名.add(データ);
##2.3 リストからデータを取得する
リストからデータを取得するには、リストが持つgetメソッドにindex番号を指定して、取得する。
リスト名.get(index番号);
##2.4 リストのデータを置き換え
リストのデータを置き換えるためには、リストが持つsetメソッドに、index番号・追加するデータを指定する。
リスト名.set(index番号, 追加するデータ);
##2.5 リストに対して、同じ処理を行う
for文を用いて、リストに対して同じ処理を行う。リストが持つsizeメソッドを用いることで、リストの長さが分かる。
for(int i = 0; i < リスト名.size(); i++){
//処理内容
.
.
}
#3. マップ
マップとは、keyに対応するvalueを格納するデータ構造である。マップへデータを格納する時に、keyへの関連付けを行う。マップからデータを取得する時には、関連付けられたkeyを使用する。リストと同様に、マップを用いる場合は、ソースファイルにpackageをimportする必要がある。
import java.util.*;
##3.1 マップの宣言
Map<keyのデータの型, valueのデータの型> マップ名 =
new HashMap<keyのデータの型, valueのデータの型>();
##3.2 マップのデータを格納
マップ名.put(key, value);
##3.3 マップのデータを取得
マップ名.get(key);
##3.4 マップ中のデータに同じ処理をする
拡張for文を用いて、マップ中のデータに同じ処理を行う。マップが持つkeySetメソッドによって、マップ中のkeyをすべて返す。
for(keyのデータ型 key : マップ名.keySet() ) {
データ型 data = マップ名.get(key);
//処理
}