|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface RandomAccess
マーカーインタフェースは、高速な (一般的には一定時間) ランダムアクセスをサポートすることを示す、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();
このインタフェースは、Java Collections Framework のメンバーです。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。