操纵随机访问列表(比如ArrayList)的最佳算法应用于序列化List时通常需要二次方的复杂度。在应用泛型算法到泛型List的时候,应当先检查是否实现了这个接口,以免造成应用在序列化List时性能不佳,以及在需要的时候改变这些算法的行为。
事实上,随机和序列List的区别有时候是模糊的。比如某些List的实现类在元素个数变大很大的时候的期望是近似于线性增长的访问时间,但实际上却是常量访问时间。一般而言,如果一个List在用for循环:
for (int i=0, n=list.size(); i < n; i++)
list.get(i);
的运行速度要快于用迭代器:
for (Iterator i=list.iterator(); i.hasNext(); )
i.next();
的运行速度时,应当实现此接口。
RandomAccess接口也是Java Collections Framework的一部分(从1.4开始)。