模块 java.base
 java.util

接口 RandomAccess

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

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

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

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

自从:
1.4