java容器 接口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();
 * 
* * * @since 1.4 */ public interface RandomAccess { }

 

你可能感兴趣的:(java容器,源码分析)