Module java.base
Package java.util

Interface RandomAccess

所有已知的实现类:
ArrayList, AttributeList, CopyOnWriteArrayList, RoleList, RoleUnresolvedList, Stack, Vector

public interface RandomAccess
List实现类使用的标记接口,用于指示它们支持快速(通常是常数时间)的随机访问。此接口的主要目的是允许通用算法在应用于随机访问列表或顺序访问列表时改变其行为以提供良好的性能。

最佳的用于操作随机访问列表(如ArrayList)的算法在应用于顺序访问列表(如LinkedList)时可能产生二次行为。鼓励通用列表算法在应用可能导致性能不佳的算法之前检查给定列表是否是这个接口的instanceof,并在必要时改变它们的行为以保证可接受的性能。

人们认识到随机访问和顺序访问之间的区别通常是模糊的。例如,一些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集合框架的成员。

自版本:
1.4