コレクションとはオブジェクトを保持してまとめる、配列を補足するものです。配列では要素のサイズは固定ですが、コレクションならば動的に変更できます。
すべてのコレクション クラスはjava.lang.Iterableを実装するため、拡張for文を適用できます。Iterable (Java Platform SE 7 )
また任意の型のデータを受け入れるため、ジェネリックなクラスとして定義されています。
インターフェイス (interface) |
実装 (class) | ||||
---|---|---|---|---|---|
ハッシュテーブル | サイズ変更可能 な配列 |
バランスツリー | リンクリスト | ハッシュテーブル + リンクリスト |
|
Set | HashSet | --- | TreeSet | --- | LinkedHashSet |
List | --- | ArrayList | --- | LinkedList | --- |
Deque | --- | ArrayDeque | --- | --- | --- |
Map | HashMap | --- | TreeMap | --- | LinkedHashMap |
古いコレクションには、それに対応する新しいコレクションが用意されています。よって必要がない限り、新しいコレクションを使用するようにします。
古いコレクションが必要とされるのは、複数のスレッドで処理する場合です。そのようなときには、古いコレクションで対応することを検討します。
※1 新しいコレクションでは同期されず、スレッドセーフではありません。Iterable.iterator()メソッドでIteratorを取得することで、すべての要素へアクセスできます。
ArrayList<Integer> arrayList = new ArrayList<Integer>(); arrayList.add(1); arrayList.add(2); Iterator<Integer> iterator = arrayList.iterator(); while (iterator.hasNext()) { int a = iterator.next(); System.out.print(a); }
より簡単には、拡張for文を使用する方法もあります。