Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > Java基本 > コレクション・フレームワーク −1.はじめてのコレクション・フレームワーク
更新日:2006/3/16
コレクション・フレームワーク−1.はじめてのコレクション・フレームワーク
このページではコレクション・フレームワークの概要、簡易な使用例について説明します。
コレクション・フレームワークの概要

コレクションとは複数の要素の集まりを言います。コレクション・フレームワークとはその要素の集まりを操作、管理するための方法を定義したアーキテクチャです。Javaでは、コレクション・フレームワークはインタフェースをベースに設計されています。コレクション・フレームワークのために定義されているインタフェースは以下のようになります。

コレクション・フレームワークの概要

・Collectionインタフェース
Listインタフェース、Setインタフェースのスーパーインタフェースです。コレクション・フレームワークにおける共通機能が定義されています。

・Listインタフェース
格納される要素において、順番を持つインタフェースです。インデックス番号により、要素を操作するメソッドが定義されています。

・Setインタフェース
格納される要素において、重複を許可しないインタフェースです。重複要素を持たせたくない場合に使用します。

・SortedSetインタフェース
Setインタフェースを継承します。Setインタフェースの特性に加え、要素をルールに基づきソートするという特性を持ちます。

・Mapインタフェース
格納される要素において、順番を持つインタフェースです。インデックス番号により、要素を操作するメソッドが定義されています。

・SortedMapインタフェース
Mapインタフェースを継承します。Mapインタフェースの特性に加えて、キーをルールに基づきソートするという特性を持ちます。

各インタフェースを実装したクラスが定義されています。各クラスを実装しているインタフェースは以下のようになります。
クラス
実装するインタフェース
ArrayList
List
LinkedList
List
HashSet
Set
TreeSet
SortedSet
LinkedHashSet
Set
HashMap
Map
TreeMap
SortedMap
LinkedHashMap
Map
※LinkedHashSet、LinkedHashMapはJ2SDK1.4から導入されたクラスです。

※コレクション・フレームワークはJ2SDK1.2から導入されたものです、それ以前はコレクションAPIと言う形でVectorクラス、 Hashtableクラス、Enumerationインタフェースなどが定義されていました。これらはパフォーマンス上の問題、要素操作上の問題により、コレクション・フレームワークに統合されました。下位互換性のため、これらのコレクションAPIは現在もサポートされていますが、利用は推奨されていません。
コレクション・フレームワークの使用例
コレクション・フレームワークの使用例として、同一要素の集まりに対して、異なるコレクション・フレームワーク(HasSetクラスとTreeSetクラス)をそれぞれ適用した例を紹介します。HashSetクラスはSetインタフェースを実装し、要素の重複を許可しない特性を持っています。TreeSetクラスはSortedSetインタフェースを実装し、要素の重複を許可しない特性に加え、要素をソートする特性を持っています。

【例1

import java.util.*;

public class ExCollection1 {
  public static void main(String[] args) {
    Set hs1 = new HashSet();  //(1)
    Set ts1 = new TreeSet();  //(2)

    //(3)要素の追加
    for (int i = 0; i < args.length; i++) {
      hs1.add(args[i]);
    }

    //(4)要素の追加
    for (int i = 0; i < args.length; i++) {
      ts1.add(args[i]);
    }

    System.out.println(hs1);  //(5)
    System.out.println(ts1);  //(6)
  }
}

【解説1

(1). HashSetオブジェクトhs1を生成します。
(2). TreeSetオブジェクトts1を生成します。
(3). 引数に指定された要素をaddメソッドを使用し、hs1オブジェクトに追加します。
(4). 引数に指定された要素をaddメソッドを使用し、ts1オブジェクトに追加します。
(5). hs1オブジェクトを表示します。
(6). ts1オブジェクトを表示します。
【実行結果1】

D:\JAVA>javac ExCollection1.java

D:\JAVA>java ExCollection1 J A V A C O L L E C T I O N
[O, N, L, J, I, V, E, T, C, A]  ←重複要素が排除されています。
[A, C, E, I, J, L, N, O, T, V]  ←重複要素が排除され、且つソートされています。


D:\JAVA>

コレクション・フレームワーク
1.はじめてのコレクション・フレームワーク
2.List
3.Set
4.Map
5.Iteratorインタフェース



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道