
今回は…
拡張forループ
というテーマでお送りします。

今回も、よろしくお願いします。

頑張ります!
目次
【1】ArrayList

ArrayListクラスとは…
複数の要素(オブジェクト)を
纏めて管理する
の一種です。
順序付けられた要素を扱う
のようなイメージです。
コレクション関連は java.util
パッケージに定義されています。
纏めて管理する「コレクション」の一種。
✅ 順序付けられた要素を扱う
配列の拡張版のようなイメージ。
✅ コレクション関連は java.util
パッケージに定義されている。
Java超入門では、配列を学びましたね。
配列の場合には
要素数分の領域を確保すると
でした。

処理の中で
付け加えたり 削除したりできません。
これに対して、ArrayListクラスを使うと
メソッドを使って…
削除したり することができる
のです。

とても、便利に使えるクラスなのです。

しっかり習得して、活用します。

もっと早く教えて欲しかったです。
【2】ArrayListの使い方

それでは、ArrayList の使い方を見ていきましょう。
① オブジェクト生成
まずは、オブジェクトの生成からです。
= new ArrayList<要素の型>();
new 演算子で ArrayList をインスタンス化して
ArrayList型の変数に代入します。
これで、要素数が 0 の ArrayList の
オブジェクトが作成されます。

ここで、ポイントが3つあります。
1つずつ見ていきましょう。
❶ ジェネリクス
Java言語の文法に、このようなものがあります。
<(小なり括弧)・>(大なり括弧)で
囲まれた部分です。

これは、このArrayListで扱う
を指定するものです。
例えば要素が String型であれば
<String> と記述します。
この < と > を使った型の表現は
と呼ばれる Javaの書き方です。

少し長いですが…
までを 1つの型 と考えるようにしましょう。

❷ 要素は参照型のみ
ここ、注意点です。
ジェネリクスに指定できるのは
です。基本データ型は指定する事ができません。
ですので、例えば
int型 を ArrayList で扱いたい場合には…
を使う必要があります。

ということで…
○ ArrayList<Integer>
ジェネリクスに int型を指定するのはNGです。
Integer型を指定する事になります。

❸ Listの型で定義
そして最後のポイント。
ArrayList型の 変数を扱う時、多くの場合
で扱います。

Listインタフェースは、ArrayList や LinkedListなどの
を定義しているインタフェースです。
= new ArrayList<要素の型>();
↓
List<要素の型> 変数名
= new ArrayList<要素の型>();
このように、実装を意識しないで、インタフェースの枠組みに
着目して操作しておくことで…
後から ArrayList クラスを別のクラスに変更する
場合にも 変更がスムーズにいくことになります。
= new ArrayList<要素の型>();
↓
List<要素の型> 変数名
= new ArrayList<要素の型>();
と説明してきましたが、このあたりは
使っていくうちに 段々と分かる事も多いものです。

② メソッド
ArrayListで実装している
(Listインタフェース定義している)…
基本的な メソッドを見ておきましょう。
❶ add(E element)
引数1つの add メソッドは
メソッドです。

大文字の E という型は ジェネリクスで指定された型です。
例えば ジェネリクスで String が指定された場合…
add() メソッドの引数として String型のオブジェクト
(文字列)が渡されることとなります。
ここでは、この追加されるイメージを押さえておいて下さいね。
❷ add(int index, E element)
add() メソッドは、オーバーロードされていて…
こちらのメソッドは、
element で指定したオブジェクトを挿入
するメソッドです。

元にあった要素は、順に後ろにズレる
イメージです。
❸ get(int index)
get() メソッドは
します。

参照値の コピー を取得するため
元の リスト には変化はありません。

❹ remove(int index)
remove() メソッドは
します。

削除した以降の要素は、1つずつ詰められる
こととなります。

❺ size()
size() メソッドは
メソッドです。

オブジェクト化した直後は 0 が返ってきます。
❻ clear()
clear() メソッドは
して、要素数が 0 の状態にします。

初期の状態に戻る…という事ですね。

インタフェースの List の使い方もバッチリです。

【3】拡張forループ

拡張forループとは…
配列やListなどに対して
取り出して処理をする繰り返し構文。です。
取り出して処理をする繰り返し構文。
拡張forループは、このように
要素を順に取り出して処理するので
通常の forループでも 書くこともできますが…

拡張forループのほうが、スッキリ書くことができるのです。
for (要素の型 任意の変数名 : 配列名 または リスト変数名) {
:
(任意の変数名を使って処理)
:
}
【例】
for (String str : strList) {
:
System.out.println( str );
:
}
for 文の中で、このように 配列や List から
取り出す変数名を指定して、コロンを記述…

その後に「配列名」または「リスト変数名」を
記述します。

例えば、ジェネリクスが String型の List
strListがあるとすると…

取り出す変数を String型の str とすれば
このように記述することができます。

カウンタ変数や、要素数、添字を for 文に
書かなくて良いので、スッキリと書けますね。


コンパクトな プログラムが書けそうです。

【まとめ】

纏めて管理する「コレクション」の一種。
✅ 順序付けられた要素を扱う
配列の拡張版のようなイメージ。
List<要素の型> 変数名
= new ArrayList<要素の型>();
✅ add()、remove()などのメソッドで
要素の操作を行う。
取り出して処理をする繰り返し構文。
✅ カウンタ変数や、要素数、添字を for 文に
書かなくて良いので、スッキリと書ける。
今回も、ご覧いただき、ありがとうございます。