今回はArrayListというものについて。
どういったときに使用できるか、また実際にコードを使用してどのように使用できるかを確かめる。
ArrayListとは?
以前にAPIというものについて学習した。
特別なクラスのことで、Javaにもとから用意されているもの。
APIについては以下参照。
【Javaプログラミング】APIとは?使い方についても-プロショvol.64
ArrayListもJavaに用意されているもののうちの一つ。
ArrayListは配列に似たようなもの。
配列と異なる点は、配列は一度作成すると長さを変えることは出来ない。
入れることができるデータのサイズが一度決められると、その後で拡張したり縮小することができない。
ArrayListは作成した後でデータを追加していっても自動的にサイズが拡張されるという特徴を持っている。
反対に、データを削除すると自動的に縮小される。
ArrayListはデータのサイズに自動的に合わせてくれる。
ArrayListに保持してほしいデータのサイズがあるときには指定可能。
また、サイズを指定したうえでさらに拡張、縮小することも可能。
ArrayListを使用するには
ArrayListはJava.util.packageに入っている。
使用するには「import」を使用して「Java.util.package」を導入し、ArrayListのオブジェクトを作成する必要がある。
ArrayListはオブジェクトを入れるところ。
指定する型(データの型)はクラス型でないとダメ。
⇒プリミティブ型は使用できないということ。
ArrayListに入れたいデータが文字列の場合には「String」、整数の場合は「Integer」を「データの型」に入れる。
プリミティブ型については以下参照。
プリミティブ型とは?参照型とは?2つの違いって何? by JAVAプログラミング初心者vol.48
プリミティブ型はArrayListでは使えないからラッパークラス型のものを使用しないといけない。
ラッパークラスについては以下参照。
【Javaプログラミング】ラッパークラスとは?プリミティブ型との違いって何?-プロショvol.72
ArrayListで使用できる便利なメソッド
以下はArrayListで使用することができるメソッド。
ArrayListにオブジェクトを入れるときに使用したり、削除したりと便利なもの。
- add()・・・オブジェクトをArrayListに加えたいときに使用
ArrayListのオブジェクト名.add()という形で使用。 - remove()・・・オブジェクトをArrayListから削除したいときに使用
ArrayListのオブジェクト名.remove()という形で使用。 - get()・・・表示して欲しいデータを取得する際に使用
データは基本的に入れられた順番に「0」から番号が振られている。
get(0)は一番目のデータを表示するということ。
System.out.println()の中で使用される。 - set(番号,オブジェクト)・・・番号とオブジェクトを書くことで、最後に書くと既にその番号に入っているデータが書き換えられる。
set(1,オブジェクト)とすると「オブジェクト」が二番目のデータになり、元々その場所に入っていたデータは無くなる。一番目は「0」。
- contains()・・・()内に書いたオブジェクトがArrayListに入っていれば「true」が表示される
System.out.println()の中で使用される。 - size()・・・ArrayListがいくつのオブジェクトを持っているかを知りたいときに使用
System.out.println()の中で使用される。 - clear()・・・すべてのオブジェクトをArrayListから削除したいときに使用。
以上がArrayListにて使用される主なメソッド。
次の項目でこれらのメソッドを使用したコードを作成したものを見ていく。
ArrayListとメソッドを使用したコード
以下のコードを作ってみた。
今回は文字列をArrayListに入れた。
public class ArrayListUse { public static void main(String[] args) {
ArrayList<String> fruit = new ArrayList<String>(5);
fruit.add(“Apple”);
fruit.add(“Grape”);
fruit.add(“Orange”);
fruit.add(“Banana”);
fruit.add(“Strawberry”);
fruit.remove(“Banana”);
System.out.println(fruit.contains(“Banana”));
System.out.println(fruit.size());
fruit.set(1, “Peach”);
fruit.add(“Lemon”);
System.out.println(fruit.size());
System.out.println(fruit);
fruit.clear();
System.out.println(fruit);
}
}
実行すると以下の結果が得られる。
4
5
[Apple, Peach, Orange, Strawberry, Lemon]
[]
- ArrayListのオブジェクト(fruit)を作成した際、データの数は5個と指定してみた(ArrayList<String> fruit = new ArrayList<String>(5);)。
- 「Apple」「Grape」「Orange」「Banana」「Strawberry」というオブジェクトをArrayListに入れた(fruit.Add.();)
- 「Banana」を削除(fruit.remove(“Banana”);)。
- 「Banana」がArrayListに含まれているかを確認(System.out.println(fruit.contains(“Banana”));)。
⇒含まれていないから「false」が表示「Banana」は一度ArrayListに加えたけれど、remove()で削除している。
確認したときはすでに削除されている状態だから「含まれていない」ことになっている。
- この時点でのデータの数を調べてみると4つ(System.out.println(fruit.size());)。
- 「Peach」を「1」に入れた(fruit.set(1, “Peach”);)。
- 「Lemon」をさらにArrayListに加えた(fruit.add(“Lemon”);)。
- この時点でのデータの数を調べてみると5つ(System.out.println(fruit.size());)。
- 今現在ArrayListに入っているオブジェクトを表示させる(System.out.println(fruit);)。
最初は2番目には「Grape」が入っていた。
けれどもset()を使用して、「Peach」を入れたことで書き換えられた。
そのため画面には「Grape」ではなく「Peach」が入っている。 - 全てのデータを消してみた(fruit.clear();)。
- 現在ArrayListに入っているオブジェクトを表示させてみた(System.out.println(fruit);)。
clear()によって全部削除されたから[]と空っぽになっている。
以上がArrayListとメソッドを使用したコードと、順番に流れを追っていったもの。
コードを書く順番によって表示される内容が異なってくるから注意。
最後に
私は配列よりもこのArrayListの方が好きかもしれない。
自分で自由に追加、削除できるし制限が無いから学習しやすかった。
これ以上複雑にならないことを願う・・・。
コメント