Most visited

Recently visited

Added in API level 1

RandomAccess

public interface RandomAccess

java.util.RandomAccess
Known Indirect Subclasses


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

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

人们认识到,随机访问和顺序访问之间的区别往往是模糊的。 例如,一些List实现在渐近线性访问时间(如果它们变大),但实际上访问时间不变。 这样的List实现通常应该实现这个接口。 作为一个经验法则,如果对于该类的典型实例, List实现应该实现此接口,该循环为:

     for (int i=0, n=list.size(); i < n; i++)
         list.get(i);
 
runs faster than this loop:
     for (Iterator i=list.iterator(); i.hasNext(); )
         i.next();
 

该界面是 Java Collections Framework的成员。

Hooray!