Java配列 ArrayListについて
Javaとは
Javaは、1995年にリリースされたプログラミング言語およびコンピューティング・プラットフォームです。Javaは多くの現場で使われており、汎用的でOSに依存せず、「一度プログラムを書けば、どこでも実行できる」という特徴があることが理由で、とても人気のあるプログラミング言語です。
プログラム言語には動くマシンが限定されてしまうケースが多いのですが、JavaはWindowsやMacOS、Linux、UNIXなど様々なマシンで動かすことができます。作成したソフトが動く環境を考えるというのはプログラマーにとって大変な問題ですので、どこでも動作して、OSに依存しないという点は重要なポイントになります。
配列
配列とは、同じ型の変数を1つにまとめて扱えるようにした仕組みです。
例えばテストの成績をまとめて格納したい場合などがあったとしましょう。
まず配列を宣言する必要があり、次のように書きます。
型名 配列名[ ] ;
配列名 = new 型名[配列の長さ];
一行にまとめて書くこともできますのでそちらの方法を使い、以下に簡単に配列を宣言し、値を入れてみます。
score[0] = 78; (⇦「0」から始まるということに注意)
score[1] = 80;
score[2] = 100;
score[3] = 25;
score[4] = 69; (⇦「0」から始まっているので5つ目の枠の番号は「4」)
--------------------
int scores[] = {78, 80, 100 ,25, 69}; (というふうに宣言と同時に値を書くこともできる)
ArrayList
ではArrayListを使う必要があるのか疑問に思うかもしれませんが、配列とArrayListには違いがありますので、しっかりと理解していきましょう。
まず配列は、格納できる要素の大きさが決まっているので、あらかじめ決めた大きさを超えて要素を格納すると、「IndexOutOfBoundsException」が発生します。
一方、ArrayListは要素数の大きさが決まっていませんので、要素数を追加していくことができます。
ArrayListは「java.util.ArrayList」として、java.utilクラス内で定義されています。
そして、ArrayListを使うためにはArraListクラスのオブジェクトを作成します。
リストは要素が追加された順番を保持し、重複した要素もそのまま保持することができます。
宣言の書き方は
ArrayList<型> リスト名 = new ArrayList<型>();です。
先ほど紹介した配列では、初めに [5]のようにして要素の数をしていましたが、今回のArrayListの宣言では数を指定していません!
例えば次のように書けば、exampleにはString型の要素を格納できるようになります。
ArrayList<String> example = new ArrayList<String>( );
ここで注意が必要なポイントとして、要素は参照型である必要があるということです。
「int型」のような基本データ型(プリミティブ型)を要素にもつリストは作成できません。
なので、基本データ型のリストを作成したい場合は、ラッパークラスを用いて定義するようにしましょう。
ラッパークラスとは…
・boolean → Boolean
・char → Character
・byte → Byte
・double → Doubule
などのことです。
int型のラッパークラスはIntegerクラスでしたね。なので、次のようになります。
ArrayList<Integer> example = new ArrayList<Integer>( );
ArrayListに要素を設定する
今回は定義したリストに対し要素の追加、取り出し、上書きを行っていきます。
①リストに要素を追加する
「addメソッド」を使います。addメソッドで追加された値は、リストの最後尾に追加されます。
書き方は、add("値");です。
具体例を書いてみましょう。
animals.add("イヌ");
animals.add("ウサギ");
animals.add("ネコ");
また、要素を複数まとめて追加する場合は「addAllメソッド」を使用します。 具体例を書いてみると…
animals01.add("イヌ");
animals01.add("ウサギ");
animals01.add("ネコ");
ArrayList<String> animals02 = new ArrayList<>();
animals02.addAll(animals01);
System.out.println(animals02);
実行結果 … [イヌ,ウサギ,ネコ]
②要素を取り出す
「get(int index)」を使います。int indexは引数としてインデックスを受け取り、このインデックスの位置にあるオブジェクトを返します。
animals.add("イヌ");
animals.add("ウサギ");
animals.add("ネコ");
String ani = animals.get(1); (⇦animalsの「1」に入っている要素を取り出す)
System.out.println(ani);
実行結果 … ウサギ
③要素を上書きする
「set(int index, "値")」を使います。 第一引数で0から始まる要素の、何番目の要素に上書きしたいかを指定し、第二引数で上書きする内容を指定します。
animal.add("イヌ");
animal.add("ウサギ");
animal.add("ネコ");
animal.set(1, "サル"); (⇦setで1番目の要素を"サル"に上書きする)
System.out.println("set後" + animal);
実行結果 … [イヌ,サル,ネコ]
最後に
今回はArrayListについて紹介しました。ArrayListのメソッドの中で紹介したのは3つでしたが、他にもたくさんあります。 ArrayListはJavaで開発をしていると必ずと言っていいほど使いますので、ArrayListについてより理解を深めて開発に役立てていきましょう!