RandomAccess属于一种标记接口,顾名思义就是用来作为标记的。
在对List特别是大数据量下的List的遍历算法中,要尽量来判断是属于RandomAccess(如ArrayList)还是Sequence List (如LinkedList),因为适合RandomAccess List的遍历算法,用在Sequence List上就差别很大,常用的作法就是:
要作一个判断:
if (list instance of RandomAccess) {
for(int m = 0; m < list.size(); m++){}
}else{
Iterator iter = list.iterator();
while(iter.hasNext()){}
}
从这里我们也可以看出一般实现了该接口的集合底层使用的都是数组结构。