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()){}
}
從這裏我們也可以看出一般實現了該接口的集合底層使用的都是數組結構。