JavaTM 2 Platform
Standard Ed. 5.0

java.util
インタフェース RandomAccess

既知の実装クラスの一覧:
ArrayList, AttributeList, CopyOnWriteArrayList, RoleList, RoleUnresolvedList, 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 のメンバです。



JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。