コレクションフレームワーク
日本語 | 収拾枠組 |
英語 | collections framework |
ふりがな | これくしょんふれーむわーく |
フリガナ | コレクションフレームワーク |
いわゆる「コレクション」のこと。
Collectionインターフェイス、そのサブインターフェイスであるListインターフェイスとSetインターフェイス、それに加えたMapインターフェイスを「フレームワーク」とし、そのサブクラスとしてArrayListクラスやHashMapクラス等を含めて「コレクションフレームワーク」と言う。
ただし、普通の「フレームワーク」とは少し異なる。
通常、フレームワークはその名の通り「枠組」のみを提供し、使用する実装クラスの一部をプログラマーが作成することになる。
だが、コレクションフレームワークはひとそろいのクラスがすでに揃っているため、さらにクラスを追加することは少ない。
また、基本となるインターフェイスが同じでも、実装クラスの機能に大きな差があるため、インターフェイスを元にポリモーフィズムを行うのは危険な面もある。
あるとしたら、Arraysクラスのsort()メソッドに使用するComparatorインターフェイスの実装クラスや、Comparableインターフェイスの実装クラスとして要素となるクラスを作成する、といった所だろう。
Collectionインターフェイス、そのサブインターフェイスであるListインターフェイスとSetインターフェイス、それに加えたMapインターフェイスを「フレームワーク」とし、そのサブクラスとしてArrayListクラスやHashMapクラス等を含めて「コレクションフレームワーク」と言う。
ただし、普通の「フレームワーク」とは少し異なる。
通常、フレームワークはその名の通り「枠組」のみを提供し、使用する実装クラスの一部をプログラマーが作成することになる。
だが、コレクションフレームワークはひとそろいのクラスがすでに揃っているため、さらにクラスを追加することは少ない。
また、基本となるインターフェイスが同じでも、実装クラスの機能に大きな差があるため、インターフェイスを元にポリモーフィズムを行うのは危険な面もある。
あるとしたら、Arraysクラスのsort()メソッドに使用するComparatorインターフェイスの実装クラスや、Comparableインターフェイスの実装クラスとして要素となるクラスを作成する、といった所だろう。
参考サイト
// Sample.java
import java.util.Collection;
import java.util.ArrayList;
import java.util.LinkedList;
public class Sample
{
public static void main( String[] args )
{
// ArrayListクラスを作成して、要素を追加させます。
ArrayList arrayList = new ArrayList();
addOneInteger( arrayList, 100 );
System.out.println( arrayList.get( 0 ) );
// 100
// LinkedListクラスを作成して、要素を追加させます。
LinkedList linkedList = new LinkedList();
addOneInteger( linkedList, 200 );
System.out.println( linkedList.get( 0 ) );
// 200
// このように、共通使用できるのがフレームワークな点……かな?
}
// 要素をひとつ追加します。
public static void addOneInteger( Collection collection, int i )
{
// Collectionインターフェイスの実装クラスなら、どのクラスでも
// 要素を追加できます。
collection.add( new Integer( i ) );
}
}
import java.util.Collection;
import java.util.ArrayList;
import java.util.LinkedList;
public class Sample
{
public static void main( String[] args )
{
// ArrayListクラスを作成して、要素を追加させます。
ArrayList arrayList = new ArrayList();
addOneInteger( arrayList, 100 );
System.out.println( arrayList.get( 0 ) );
// 100
// LinkedListクラスを作成して、要素を追加させます。
LinkedList linkedList = new LinkedList();
addOneInteger( linkedList, 200 );
System.out.println( linkedList.get( 0 ) );
// 200
// このように、共通使用できるのがフレームワークな点……かな?
}
// 要素をひとつ追加します。
public static void addOneInteger( Collection collection, int i )
{
// Collectionインターフェイスの実装クラスなら、どのクラスでも
// 要素を追加できます。
collection.add( new Integer( i ) );
}
}
// Sample.java import java.util.Collection; import java.util.ArrayList; import java.util.LinkedList; public class Sample { public static void main( String[] args ) { // ArrayListクラスを作成して、要素を追加させます。 ArrayList arrayList = new ArrayList(); addOneInteger( arrayList, 100 ); System.out.println( arrayList.get( 0 ) ); // 100 // LinkedListクラスを作成して、要素を追加させます。 LinkedList linkedList = new LinkedList(); addOneInteger( linkedList, 200 ); System.out.println( linkedList.get( 0 ) ); // 200 // このように、共通使用できるのがフレームワークな点……かな? } // 要素をひとつ追加します。 public static void addOneInteger( Collection collection, int i ) { // Collectionインターフェイスの実装クラスなら、どのクラスでも // 要素を追加できます。 collection.add( new Integer( i ) ); } }