public interface RandomAccess
ランダムアクセスリスト (ArrayList など) を操作するのに最適なアルゴリズムは、シーケンシャルアクセスリスト (LinkedList など) に適用された時に 2 次動作を引き起こすことがあります。シーケンシャルアクセスリストに適用すると貧弱なパフォーマンスをもたらす場合があるため、ジェネリックリストアルゴリズムでは、アルゴリズムを適用する前に、指定されたリストがこのインタフェースのインスタンスかどうか (instanceof) を調べることが推奨されています。また、良好なパフォーマンスを保証するために、必要に応じてその動作を変更することも奨励されています。
ランダムアクセスとシーケンシャルアクセスとの区別が多くの場合曖昧であることが認められています。たとえば、一部の 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 のメンバーです。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.