|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
マーカーインタフェースは、高速な (一般的には一定時間) ランダムアクセスをサポートすることを示す、 List 実装により使用されます。このインタフェースの主な目的は、汎用アルゴリズムが、ランダムアクセスリストまたはシーケンシャルアクセスリストのどちらかに適用された時に、動作を変更して、優れたパフォーマンスを実現することです。
ランダムアクセスリスト (ArrayList など) を操作するのに最適なアルゴリズムは、シーケンシャルアクセスリスト (LinkedList など) に適用された時に 2 次動作を引き起こすことができます。シーケンシャルアクセスリストに適用された場合、貧弱なパフォーマンスをもたらすアルゴリズムを適用する前に、汎用リストアルゴリズムでは、指定されたリストがこのインタフェースの instance かどうかを調べることを推奨されています。また、許容範囲にあるパフォーマンスの保証が必要な場合に、その動作を変更することも奨励されてます。
ランダムアクセスとシーケンシャルアクセスとの区別が多くの場合曖昧であることが認められています。たとえば、List 実装は、非常に長くても、一定なアクセス時間で動作した場合に、漸近の線形アクセス時間を実現します。こうした List 実装は、一般的にこのインタフェースを実装する必要があります。経験則として、クラスの典型的なインスタンスに関して、以下のようなループの場合、List 実装がこのインタフェースを実装する必要があります。
for (int i=0, n=list.size(); i < n; i++) list.get(i);以下のようなループより迅速に実行されます。
for (Iterator i=list.iterator(); i.hasNext(); ) i.next();
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.