2 回答

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
記錄的存取方式有兩種:一種是順序存儲(chǔ),另一種是鏈接存儲(chǔ)
對(duì)于順序存儲(chǔ)的記錄可以根據(jù)其下標(biāo)找到對(duì)應(yīng)的記錄,而鏈接存儲(chǔ)(拿單鏈表為例)
則必須找到其前一個(gè)記錄的位置才能夠找到本記錄。
所以for循環(huán)便于訪問順序存儲(chǔ)的記錄,比如數(shù)組等
而迭代則更適用于鏈接存儲(chǔ)的記錄,雖然Java中有些底層通過鏈接存儲(chǔ)原理實(shí)現(xiàn)的集合
也可以通過下標(biāo)獲取指定的記錄,但是其每次都必須從鏈表頭開始查找記錄,這樣會(huì)影響查找的效率

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊
for循環(huán)是語言中循環(huán)控制結(jié)構(gòu)。
而iterator則是用來遍歷集合中的元素。本身是不能夠循環(huán)遍歷需要借助循環(huán)控制語句進(jìn)行迭代元素。
個(gè)人認(rèn)為iterator封裝了循環(huán)體遍歷元素的細(xì)節(jié),使得編程人員無需關(guān)心集合結(jié)構(gòu),以及訪問元素的操作。
例如:
for(int i=0;i<size;i++){
Object o=list.get(i);//List遍歷元素
}
for(int i=0;i<size;i++){
Object o=objects[i];//數(shù)組遍歷元素
}
而對(duì)iterator來說,使用一個(gè)統(tǒng)一的接口來訪問具體的集合元素.
while(iterator.hasNext()){
Object o=iterator.next();//統(tǒng)一的接口來訪問具體的集合元素.
}
說到這,相信你對(duì)iterator和for語句有一個(gè)新的認(rèn)識(shí)了吧!
- 2 回答
- 0 關(guān)注
- 683 瀏覽
添加回答
舉報(bào)