Java の List インターフェイスと ArrayList
Java の List インターフェイスとは
リストというのはデータの要素が順番に並んでいるデータ構造で、それらをインデックスでアクセスしたり、順番にアクセスしたりしたものです。
Java の List インターフェイスでは、要素を追加するための add() メソッドや要素を削除するための remove() メソッドなど、 リストの要素を操作するためのメソッドが定義されています。
Java のクラスライブラリの中に、 ArrayList クラス、 LinkedList クラスなど、 List インターフェイスを実装したクラスが用意されています。 同じインターフェイスを実装しているので、クラスは違えど同様の使い方で利用できるのでとても便利です。
Java の ArrayList の使い方
List インターフィエスを実装した基本クラスとして、 ArrayList クラスがあります。
ここでは ArrayList の簡単な使い方をみてみましょう。次のコードをみてください。
package com.keicode.java.test;
import java.util.ArrayList;
import java.util.List;
public class CollectionTest1 {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("Hello");
al.add("World");
for (String s : al) {
System.out.println(s);
}
}
}
実行結果は次のようになります。
Hello
World
上記のコードで何をしているかみてみましょう。
List<String> al = new ArrayList<String>();
このコードでは ArrayList のオブジェクトを作成し、al という変数でその List インターフェイスにアクセスします。
al は List<String> ですから、この時点で興味は「List インターフェイスを実装しているもの (型は String)」 という点にのみ絞られていることに注意してください。 これは何を意味するでしょうか。
List インターフェイスは、Stack クラス、Vector クラスなどでも実装されています。従って、上記のコードは ArrayList だけではなく、 Stack オブジェクト、Vector オブジェクトに対しても同様な操作が可能であるということになる、ということになります。
List インターフェイスの add メソッドを使って、リストに要素を追加します。
al.add("Hello");
al.add("World");
保持するリストの要素数は動的に変わるので、add() メソッドを呼ぶだけで必要に応じてリストのサイズが大きくなります。(一方、配列では要素の数が固定です)
リストに要素を追加したら、for-each ループでその中身を確認しています。
for (String s : al) {
System.out.println(s);
}
List インターフェイスを実装していれば、このように for-each ループで直ちに使えます。
以上、List インターフェイスと ArrayList の基本的な使い方について説明しました。