Study & Practice

北海道札幌市のプログラマによる技術とか雑記のブログ

Java ArrayListの使い方

Java言語で学ぶデザインパターン入門を先日から改めて最初から始めたので問題1−1で使ったArrayListの基本をまとめる。

ArrayListJavaで提供されているコレクションクラスのひとつで(コレクションフレームワークともよばれている)ArrayListを使用すればサイズ変更が可能な配列を実装できる。

使い方としてはまずファイルの先頭にimport文

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

と書く

これがなければArrayListは使用することができない。
1行目の

 import java.util.List;

はなくてもいいの使えないことはないのだがちゃんと書いておこう(理由は後述する)

実装としては

List<String> list = new ArrayList<String>();

のように宣言し、不等号<>の中に型を書く

ここで注意するのが

ArrayList<String> list = new ArrayList<String>();

とは書かないこと。理由としてはListクラスはインターフェースであり、ArrayListはその実装なのでオブジェクト指向の書き方、抽象度を高める書き方をするためList<型>を宣言するのが正しい。(うまく説明できない)

このあたりはこちらの記事が参考になる。
「ArrayList で変数を宣言してはいけません!」からはじまる疎結合の解説

実際にListを使用するとき代表的なもので言うと

//Listの最後の要素に格納
list.add("string");
//Listの2番目の要素に格納
list.set(2);
//Listの3番目の要素をint型変数numに格納
int num = list.get(3);
//Listの4番目の要素を削除
list.remove(4);

のようになるremoveは

list.remove("hoge");

とするとList内でString型で値がhogeの要素を削除しれくれる。

他にもあるがあまり使いどころは多くなさそうなの割愛。

詳しく調べたいのであれば
ArrayList (Java Platform SE 7)
を参照するとよい


以下、サンプルコード

import java.util.ArrayList;
import java.util.List;
public class sampleArrayList {
    public static void main(String[] args){
        //ArrayListの宣言
        List<String> list = new ArrayList<String>();
        list.add("One");
        list.add("Two");
        list.add("Three");
        list.add("Four");
        list.add("Five");
        list.remove("Two");
        list.set(1, "Two");

        //拡張forループ
        for(String s : list){
            System.out.println(s);
        }

        list.remove("Four");
        
        System.out.print("listの2番目の要素は");
        System.out.println(list.get(2));
    }
}

以下、実行結果

One
Two
Four
Five
listの2番目の要素はFive