Google検索エンジン

トップページ » Javaプログラミング講座(応用編) » ArrayListの使い方


ArrayListの使い方

  • ArrayListを使用するときは、まず「java.util.ArrayList」をインポートします。 JDK5.0以降は、ジェネリクスが導入されていますので、「new ArrayList<String>」のように、インスタンス化する時点でリストに保持させるデータの型を指定する必要があります。 逆にJDK5.0以降は、値を取り出すときにキャストする必要がありません。

    JDK5.0から、新機能としてジェネリクスが導入されました。 ジェネリクスとは、「総称性(Genericity)」「ジェネリック・プログラミング」とも呼ばれるプログラミング技法で、オブジェクト指向とは異なるパラダイムからきたものです。 データの型に束縛されず、型そのものをパラメータ化して扱うことができます。 主にコレクションクラスに導入されています。

    Javaのコレクションのほとんどは、格納できるデータの型を限定しません。 JDK5.0より前は、型を限定できないためにget()メソッドで値を取り出す際に、キャストするのが普通でした。


    サンプルソースコード
    import java.util.ArrayList;
    
    class sample {
        public static void main(String args[]) {
    
            //リストの値に文字列を入れる場合
            ArrayList<String> ar1 = new ArrayList<String>();
            ar1.add(0, "2");
            ar1.add(1, "4");
            ar1.add(2, "6");
    
            //キャストする必要がない
            String mozi1=ar1.get(0);
            String mozi2=ar1.get(1);
            String mozi3=ar1.get(2);
    
            System.out.println( mozi1 );
            System.out.println( mozi2 );
            System.out.println( mozi3 );
    
            //リストの値に数値を入れる場合
            ArrayList<Integer> ar2 = new ArrayList<Integer>();
            ar2.add(0, 3);
            ar2.add(1, 6);
            ar2.add(2, 9);
    
            //キャストする必要がない
            int kazu1 = ar2.get(0);
            int kazu2 = ar2.get(1);
            int kazu3 = ar2.get(2);
    
            System.out.println( kazu1 );
            System.out.println( kazu2 );
            System.out.println( kazu3 );
        }
    }
    

    ArrayListをインスタンス化する際、<>の中にStringを指定してインスタンス化しています。 このようにしてStringのみを格納できるArrayListを作成しています。 String以外を格納しようとすると、コンパイルエラーになります。 格納できる型がStringに限定されているため、add()メソッドでArrayListに追加できるオブジェクトはStringのみになり、get()メソッドで返されるオブジェクトもStringのみとなります。

    ArrayListに値を格納したり、格納した値を取り出したりするときは、for文で繰り返すことが多いので、それもサンプルとして挙げておきます。


    サンプルソースコード
    import java.util.ArrayList;
    
    class sample {
        public static void main(String args[]) {
    
            ArrayList<String> list = new ArrayList<String>();
    
            for ( int i = 0; i < args.length; i++ ) {
                list.add( args[i] );
            }
    
            for ( int i = 0; i < list.size(); i++ ) {
                String text = list.get(i);
                System.out.println( text );
            }
    
            if ( list.isEmpty() ) {
                System.out.println( "パラメータが未指定です。" );
            } else if ( list.contains( "OK" ) ) {
                System.out.println( "OKが入力されました。" );
            } else {
                System.out.println( "OKが入力されていません。" );
            }
        }
    }
    

    ArrayListの要素数を取得したいときは「size() 」を使用します。 要素の存在を確認したいだけなら「isEmpty() 」を使用することもできます。 「isEmpty() 」は、リストに要素がない場合に true を返します。 「contains(Object) 」は、リストに指定の要素がある場合に true を返します。

    上記を踏まえて、JavaのAPI「java.util.ArrayList」を確認してみてください。 きっと、ArrayListクラスの使い方を理解できるでしょう。



Javaプログラミング講座(応用編)
書籍の紹介
  • Java ポケットリファレンス
    Java ポケットリファレンス
    発売:2011/03/25
    定価:2,709円
    著者:高江 賢
    出版:技術評論社
    内容:ベーシックだけど忘れてしまいがちな情報をコンパクトなサイズに凝縮し、「逆引き形式で目的からすぐ探せる」「サンプルコードを見ながら具体的な実装のイメージがつかめる」特徴で現場に欠かせない1冊です。
  • フェイスブック 若き天才の野望 (5億人をつなぐソーシャルネットワークはこう生まれた)
    フェイスブック 若き天才の野望
    発売:2011/01/13
    定価:1,890円
    著者:デビッド・カークパトリック
    出版:日経BP社
    内容:ユーザー数が5億人を超え、会社の時価総額が2兆円を超え、グーグルを驚かす存在となった、フェイスブック。同社を率いるマスコミ嫌いのCEO、マーク・ザッカーバーグからの信頼を勝ち得たベテラン記者が、徹底取材からフェイスブックの真実を初めて明かします。
  • プログラマが知るべき97のこと
    プログラマが知るべき97のこと
    発売:2010/12/18
    定価:1,995円
    著者:和田 卓人
    出版:オライリージャパン
    内容:世界中で活躍するプログラマによる97本のエッセイを収録した書籍です。プログラミングにおいてもっとも重要な事柄は何か、バージョン管理やテスティング、設計原則とコーディングテクニック、また腕を磨くための勉強法などについて、経験豊かなプログラマが自らの体験を踏まえて解説します。
  • 明解Java 入門編
    明解Java 入門編
    発売:2007/08/08
    定価:2,730円
    著者:柴田 望洋
    出版:ソフトバンククリエイティブ
    内容:丁寧な解説と適切なサンプルプログラム248編と、豊富で分かりやすい図表278点で、Javaの基礎から学習できます。Javaプログラミング初心者におすすめの一冊です。
  • Effective Java 第2版 (The Java Series)
    Effective Java
    発売:2008/11/27
    定価:3,780円
    著者:Joshua Bloch他
    出版:ピアソンエデュケーション
    内容:著者のGoogle, Sun Microsystemsにおけるソフトウェア開発で得た知識・経験をまとめています。Javaプログラミングをする全てのSE必読の書籍です。
  • プログラミング言語Java (The Java Series)
    プログラミング言語Java
    発売:2007/04
    定価:4,410円
    著者:ケン・アーノルド他
    出版:ピアソンエデュケーション
    内容:Javaの原典と呼べる本です。変数、コメント、定数、制御、クラス、配列、文字列、例外処理までわずか30ページで進むので、Javaを学習し始めたばかりの方には少し難しいかもしれません。厚さの割に価格も手ごろなので、Java使いなら本棚に置いておきたい本です。
  • なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング
    なぜ、あなたはJavaでオブジェクト指向開発ができないのか
    発売:2004/12
    定価:2,289円
    著者:小森 裕介
    出版:技術評論社
    内容:Javaのソフトウェア開発を中心に事業を発展させてきたSMG社の新人教育セミナーを加筆・書籍化したもので、大卒の新人に対して、ゼロからJava言語を教えてきた実績をフィードバックしています。