ArrayList
ArrayListはListインターフェースを実装したクラスで、動的配列のようなものです。
要素は重複要素を許し、インスタンス作成時の配列サイズ(new ArrayList().size())は0です。
要素を追加(add)するたびにサイズは+1されます。逆に削除(remove)するとサイズは-1されます。
配列サイズ外の要素にアクセスするとIndexOutOfBoundsExceptionがスローされます。

以下、サンプルです。

import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List list = new ArrayList();
        System.out.println("インスタンス作成時のサイズ = " + list.size());
        list.add(0,"ccc");
        System.out.println(list.size());
        list.add(0,"bbb");
        System.out.println(list.size());
        list.add(2,"aaa");
        System.out.println(list.size());
        
        for(int i=0;i<list.size();i++){
            System.out.println("list要素" + i + " = " + list.get(i));
        }
    }
}
実行結果は以下のようになります。

インスタンス作成時のサイズ = 0
1
2
3
list要素0 = bbb
list要素1 = ccc
list要素2 = aaa
重複要素のチェック
リストの要素に重複して要素が存在するかをチェックするには、contains()メソッドを使用します。
以下、例です。

import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        List list = new ArrayList();
        
        list.add("test");
        if(list.contains("test")){
            System.out.println("重複してます");
        }
    }
}
実行結果は以下のようになります。

重複してます
Java5からの記述方法
Java5からはListの記述方法が変わっています。 プログラマーのミスを防ぐためにパラメータの型を明確に記述するように変更されています。

例えばelementがString型の場合、以下のように記述します。

List<String> = new ArrayList<String>();
Listの初期化
Java5以降ではlistを簡単に初期化することができるようになりました。
Arrays.asListメソッドを使用します。
使い方は配列のように使用します。以下、例です。

import java.util.Arrays;
import java.util.List;

public class test1 {
    public static void main(String[] args){
        List<String> list = Arrays.asList("a","b","c");
        if(list.contains("a")){
            System.out.println(list);
        }
    }
}
ちなみにこのlistに対してremoveやaddメソッドを使用すると、UnsupportedOperationExceptionエラーが発生します。
これはArrays.asListメソッドの戻り値は、固定サイズのリストを返すからです。
addやremoveを使いたいなら固定サイズのリストをコンストラクタの引数に指定すれば可能です。以下、例です。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class test1 {
    public static void main(String[] args){
        List<String> list = new ArrayList<String>(Arrays.asList("a","b","c"));
        list.add("d");
        if(list.contains("d")){
            System.out.println(list);
        }
    }
}
Listのnullチェック
ListのnullチェックはisEmpty()メソッドではできず、以下のように記述すべきです。

if(list == null || list.isEmpty()){

}
isEmpty()メソッドは""であるかどうかのBoolean値を返すのでListがnullの場合trueを返さずにNullPointerExceptionになります。
また、Listがnullの状態で以下のように記述すると、先に書いた条件を判断するためNullPointerExceptionになります。

if(list.isEmpty() || list == null){

}

Back to top

Information