当サイト「ドロイドブログ」を運営しています、ゆーちゃまさんです。
Webアプリ開発3年ほど、その後Androidアプリ開発を10年以上つづけています。
- 今まさに勉強中で ArrayListの使い方が分からない。
- 例文などで使い方は分かったけど実際にどういう風に使われているかイメージつかない。

上記のような方に向けて、分かりやすく使い方・実際の事例を解説しました^^
めちゃくちゃ開発で使うこのListの基本を覚えちゃいましょう!
参考になればうれしいです。
オンラインレッスン始めました!
zoomでのオンラインレッスンをはじめました^^
マンツーマンで対応しますので、自由に質問していただけます。
javaの基礎から、転職に関する相談、Androidアプリ開発・そのた幅広く対応します。
> Androidアプリの開発・プログラミング基礎を丁寧に教えます!
- マンツーマンでjava基礎、わからない部分を丁寧に解説!
- Androidアプリ開発の方法・技術的な解説
- ITエンジニア転職の相談
- ITスクール選びで悩んでいる
- 実際に現場で習得しておきたいことを教えます^^
など内容は幅広くたいおういたします^^
お気軽に相談してください!
addメソッドで簡単に追加
ArrayListはListを継承した可変長配列と呼ばれるものです。
ほかにもLinkedListなどのクラスもあります。
インターフェースとは…
の話をすると長くなるので、とにかく使い方を覚えてバンバンつかって慣れましょう!
1 2 3 4 | finalArrayList<String>arrayList=newArrayList<>(); arrayList.add("てすと1"); arrayList.add("てすと2"); arrayList.add("てすと3"); |
こんな感じでまずはnewでインスタンス化します。
宣言時に、このリストに入るものが何なのかも宣言。
<String>の部分です。
今回は文字列なのでStringですが、他のクラスなど何でも設定できます。
ただし宣言時に設定したオブジェクト以外はリストに入れる事はできません。
今回はStringが入ったリストだよと言う事。
そして、addメソッドで追加ですね。
チェックポイント
通常の配列は宣言時に配列の数を決めないといけません。
しかし、可変長配列であるこのArrayListはその必要がありません。
この部分が配列と違って追加したいときにいくらでも追加できるので、使い勝手が良いところです!
Listの要素は getメソッドで取り出す
1 2 3 4 | finalStringstr=arrayList.get(0); // strには"てすと1"が入っている finalStringstr2=arrayList.get(1); // str2 "てすと2" は入っている |
リストの中身の取り出し方は上記になります。
getメソッドを利用。
メソッドの引数は、何番目を取り出すかを指定するインデックス(番号)。
何番目を取り出すかを0番から指定します。
実際はfor文と組み合わせてよく使う
実際にはwebアプリ(サイト)であれば、データベースから特定のデータを抽出した結果がこのArrayListに入っていて、そのリストを商品一覧ページに表示するなど。
Androidアプリでは商品検索webApiを実行した結果が、同じようにArrayListで返されてそのリストを何かに使うといった感じです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | finalArrayList<Item>itemList=newArrayList<>(); Itemitem1=newItem("商品名1",1000); Itemitem2=newItem("商品名2",500); Itemitem3=newItem("商品名3",200); itemList.add(item1); itemList.add(item2); itemList.add(item3); // ↑サンプルなので手動で商品を追加していますが // 実際はDBやapiを実行した結果のリスト intcnt=0; for(finalItemitem:itemList){ if(item.getItemPrice()<=500){ // 500円以下の商品の場合、特別なロゴを表示するとか } cnt++; } |
上記サンプルの様に商品リストを取得して、商品が500円以下の場合は何かをする…など
リストはfor文とセットで利用することが多いです。
リストが空かどうかのメソッドはユーティリティーに作っておこう
実際にリストを利用する場合、リストが空かどうか判定することがたくさんあります。
nullであれば、ヌルぽがでますし。

NullPointerException
非常に大事ですので、あいまいにしか理解していない場合は今のうちに理解しちゃいましょう^^
⇒ ⇒ ⇒ 【プログラム勉強中】NullPointerException ぬるぽをちゃんと理解しよう!
1 2 3 4 5 6 7 8 9 10 | // リストが空かどうかを判定する // 空の場合:false // 空じゃない場合:true publicstaticbooleanisNotEmpty(Listlist){ if(list==null||list.size()==0){ returnfalse; } returntrue; } |
上記↑のようなメソッドをUtilクラス(便利機能クラス)に追加しておきましょう!
そうすることによって、毎回同じチェックしなくて良くなります。
1 2 3 4 5 6 7 8 9 | // Utilにチェックメソッドが無いと… if(XXXlist!=null&&XXXList.size()>0){ // リストに中身がある場合、処理を実行 } // Utilにチェックメソッドあり if(Util.isNotEmpty(xxxList)){ // リストに中身がある場合、処理を実行 } |
毎回 nullでなく、listのサイズが0じゃないってチェックを書かなくても、上記↑のように良くなる。
便利ですね。
因みに xxxxList.size() ←これでリストのサイズが分かります。
ArrayListを配列に変換するにはtoArrayを使う
時々ですが、ArrayListを通常の配列に変換したいときが出てきます。

利用するメソッドの引数が配列だったりすると、arrayListをそのまま利用できないので、配列に変換する必要があります。
1 2 3 4 5 6 7 | ArrayList<String>list=newArrayList<>(); list.add("item1"); list.add("item2"); list.add("item3"); String[]arrayStr=list.toArray(newString[list.size()]); System.out.println(Arrays.toString(arrayStr)); |
System.out: [item1, item2, item3]
6行目で変換を実行しています。
- 「変換したいArrayList」.toArray(new 対象のObject[リスト.size()])
- 使い方はこのまま覚えてしまいましょう!
初めは難しいこと考えずに使い方を覚えて使えるようにする!
これが大事。
「変換したいArrayList」:これは元のArrayListです。.toArrayメソッドを利用。
引数に、ArrayListの中身のオブジェクト今回の場合はStringの配列なので new String[list.size()]となります。
サイズは、必ず listのsize()メソッドを使いましょう。
配列からArrayListを生成するには、Arrays.asList
今度は逆に、配列からArrayListを生成するパターン。

これも時々利用します。使用するメソッドの戻り値が配列だけど、その配列にさらにデータを追加したりしたい時など。配列は動的に追加できないので、ArrayListに変換する必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ArrayList<String>list=newArrayList<>(); list.add("item1"); list.add("item2"); list.add("item3"); // 配列に変換 String[]arrayStr=list.toArray(newString[list.size()]); System.out.println(Arrays.toString(arrayStr)); // 配列からListに変換 List<String>toList=Arrays.asList(arrayStr); // ここで toListにaddすると「UnsupportedOperationExceptionが発生」 // 新しくArrayListを生成する ArrayList<String>toArrayList=newArrayList<>(toList); // これでadd追加できます toArrayList.add("item4"); System.out.println(toArrayList); |
実行結果
System.out: [item1, item2, item3, item4]
- Arrays.asList(配列)
- Arrays.asListの引数にリストにしたい配列を渡します。
この戻り値を使ってそのまま追加addしようとすると例外発生します。
List型の戻り値を使って、ArrayListを生成します。
14行目:new ArrayList<>(toList);
ここでArrayListのコンストラクタに、先ほどのList型の戻り値を渡してArrayListを生成。
これで、add追加も出来ます^^
まとめ

非常に便利で実際の開発では、しょっちゅう利用するリストの使い方でした。
for文との組み合わせでよく使うので参考にしてみてださい^^
空チェックメソッドも実際に使ってます!
こちらの記事もどうぞ^^
⇒ ⇒ ⇒ 【java map】Mapの使い方、使いどころを実例で解説
⇒ ⇒ ⇒ 【windows仮想デスクトップおすすめ】作業効率UP!使い方は3ステップで簡単!
⇒ ⇒ ⇒ 【プログラム勉強中】NullPointerException ぬるぽをちゃんと理解しよう!
⇒ ⇒ ⇒ 【プログラム勉強】挫折しそうになった時、知っておいてほしい4つのこと
コメント