CDC 1.1.2

java.util
インタフェース RandomAccess

既知の実装クラスの一覧:
ArrayList, Stack, Vector

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 のメンバーです。



CDC 1.1.2

Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. Use of this specification is subject to license terms.