今回はコレクションのListインターフェイスに実装されているArrayListクラスの特徴と、その基本的な使い方について紹介します。
ArrayListの特徴と記述例
ArrayListは配列と似た構造を持ち、インデックス値により要素にアクセスします。配列と大きく違う点として、要素のサイズを後から変更可能であることが挙げられます。
ArrayListの特徴を下にまとめてみます。
ArrayListの特徴
- 要素数が可変である
- 要素の順番は保持される
- 要素の重複が許される
- 要素の「null」を保持できる
- 要素へのアクセスが高速であるが、要素の挿入と削除が低速である
ArrayListは以下の様に記述します。
ArrayList<ラッパークラス> 変数名 = new ArrayList<>(); //例:String型の要素を格納する ArrayList<String> list = new ArrayList<>();
ここで、型にはintのような基本データ型を要素に持つリストは作成できません。従って、ラッパークラスを使う必要があります。
//intのラッパークラスであるIntegerを使う ArrayList<Integer> intList = new ArrayList<>();
また他の書き方として、
List<ラッパークラス> list = new ArrayList<Integer>(); var list = new ArrayList<ラッパークラス>();
のように記述することも可能です。
ArrayListの基本的なメソッド
次にArrayListでよく使うメソッドを紹介します。
要素の追加(addメソッド)
要素を追加する時にはaddメソッドを使います。
add(指定位置,要素);
指定位置を省略することで末尾に要素を追加することができます。
サンプルコードと出力結果
サンプルコードを以下に示します。
import java.util.ArrayList; import java.util.List; public class AddTest { public static void main(String[] args) { List<String> list = new ArrayList>(); //赤、青、緑の順番でlistに追加し出力する list.add("赤"); list.add("青"); list.add("緑"); System.out.println(list); //インデックス2の位置に黄色を追加し出力する list.add(2, "黄色"); System.out.println(list); } }
サンプルコードの出力結果を以下に示します。
[赤, 青, 緑] [赤, 青, 黄色, 緑]
要素の更新(setメソッド)
要素を更新する時にはsetメソッドを使います。
set(指定位置,要素);
サンプルコードと出力結果
サンプルコードを以下に示します。
import java.util.ArrayList; import java.util.List; public class SetTest { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); // 1,3,5の順番でlistに追加し出力する list.add(1); list.add(3); list.add(5); System.out.println(list); // インデックス2の要素を6に更新する list.set(2, 6); System.out.println(list); } }
サンプルコードの出力結果を以下に示します。
[1, 3, 5] [1, 3, 6]
要素の取得(getメソッド)
リストから値を取り出す場合は、getメソッドを使います。
get(指定位置);
サンプルコードと出力結果
サンプルコードを以下に示します。
import java.util.ArrayList; import java.util.List; public class GetTest { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); // 1,10,100の順番でlistに追加しインデックス2の要素を出力する list.add(1); list.add(10); list.add(100); System.out.println(list); System.out.println(list.get(1)); } }
サンプルコードの出力結果を以下に示します。
[1, 10, 100] 10
要素の削除(removeメソッド, clearメソッド)
要素を削除するときはremoveメソッドを使います。リストから要素をすべて削除するときはclearメソッドを使います。
remove(指定位置);
clear();
サンプルコードと出力結果
サンプルコードを以下に示します。
import java.util.ArrayList; import java.util.List; public class RemoveTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); // 赤、青、緑の順番でlistに追加し出力する list.add("赤"); list.add("青"); list.add("緑"); System.out.println(list); // インデックス2の位置を削除し出力する list.remove(2); System.out.println(list); // 要素を全て削除し出力する list.clear(); System.out.println(list); } }
サンプルコードの出力結果を以下に示します。
[赤, 青, 緑] [赤, 青] []
まとめ
今回やったことのまとめです。
ポイント
- ArrayListを使うことで要素数が可変のものを扱える
- 要素の追加削除などはメソッドを使って行う
以上がArrayListについてのまとめです。
最初の時点で要素数が確定している場合は配列を使いますが、要素の入れ替えや要素の追加や削除が行われたりする場合には、こちらの方が便利ですね。