模块  java.base
软件包  java.util

Interface RandomAccess

  • 所有已知实现类:
    ArrayListAttributeListCopyOnWriteArrayListRoleListRoleUnresolvedListStackVector

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

    操作随机访问列表(例如ArrayList )的最佳算法在应用于顺序访问列表(例如LinkedList )时可能会产生二次行为。 鼓励使用通用列表算法来检查给定列表是否为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的成员。

    从以下版本开始:
    1.4