List遍歷的正確方式

對於List一般有兩種實現方式,一種基於數組,如ArrayList;一種基於鏈表,如LinkedList。查看其類定義,有一個非常明顯的區別,就是ArrayList實現了一個特殊的接口RandomAccess。該接口是一個標記接口,指示集合類是否具備隨機訪問能力,什麼是隨機訪問能力呢,就是get(i)的時間複雜度。如果實現了RandomAccess接口,get(i)的時間複雜度一般就很小,遍歷的時候使用
for (int i=0, n=list.size(); i < n; i++) list.get(i);就能獲取更好的性能;否則使用迭代器遍歷更好。
所以遍歷List的正確方式是

if(list instanceof RandomAccess) {
	//隨機訪問
	for (int i = 0; i < list.size(); i++) {
	    User user = list.get(i);
	    System.out.println(user);
	}
}else{
	//順序訪問
	for (User user : list) {
	    System.out.println(user);
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章