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, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。