RandomAccess接口是空的,那它是用來作什麼的呢?

RandomAccess算法

用來當標記的,是一種標記接口,接口的非典型用法dom

意思是,隨機訪問任意下標元素都比較快spa

用處,當要實現某些算法時,會判斷當前類是否實現了RandomAccess接口code

會根據結果選擇不一樣的算法blog

例如:接口

做者:Accelerator
連接:https://www.zhihu.com/question/50909512/answer/123257522
來源:知乎
著做權歸做者全部,轉載請聯繫做者得到受權。

public static void shuffle(List<?> list, Random rnd) {
        int size = list.size();
        if (size < SHUFFLE_THRESHOLD || list instanceof RandomAccess) {              
        for (int i=size; i>1; i--) swap(list, i-1, rnd.nextInt(i)); } else { Object arr[] = list.toArray(); // Shuffle array for (int i=size; i>1; i--) swap(arr, i-1, rnd.nextInt(i)); // Dump array back into list ListIterator it = list.listIterator(); for (int i=0; i<arr.length; i++) { it.next(); it.set(arr[i]); } } }
相關文章
相關標籤/搜索