Japanese / English
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
Information
社長ブログ


運営サイト




広告



Google Search
PV
SEO対策 大阪  税理士 相談  税理士 守口市  税理士 大阪市  税理士 枚方市  自動車ガラス 神戸  シール印刷 神戸  ブリリアントアパートメント  株式会社CONFRAGE  英会話 個人レッスン 京都市右京区  京都市右京区西京区でマンツーマン英会話 
このページはCONFRAGEの著作物です。このページを複製・転載することを禁じます。CopyRight(C)2003-2016 CONFRAGE All rights reserved.