集合框架_randomAccess理解

RandomAccess僅僅是一個標記接口,就像是Serialable。編程

一、標記了該接口的類更適合因而用數組遍歷形式來遍歷集合。例如ArrayList\Vector。一般是使用數組來完成的,數組這種數據結構適合於隨機訪問,可是不適合於隨機插入和刪除數組

二、而沒有標記該標記接口的類,更適合使用Iterator的形式,來遍歷,由於一般是用雙向鏈表完成的。經過數據結構裏的知識知道雙向鏈表適合於隨時刪除和插入,可是不適合於隨即訪問。這是二者不一樣的根本緣由。數據結構

這一點很重要,在編寫程序時,這也算是一種提升性能的方法。dom

一般能夠採用這種方式編程: 性能

if(collections instanceof RandomAccess){
   for(int i=0;i<collections.size;i++){接口

Object target=collections[i];get

}it

}else{io

Iterator iterator=collections.iterator();List

while(iterator.hasNext()){

Object target = iterator.next();

}

}

相關文章
相關標籤/搜索