2 回答

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

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
for循環(huán)是語(yǔ)言中循環(huán)控制結(jié)構(gòu)。
而iterator則是用來(lái)遍歷集合中的元素。本身是不能夠循環(huán)遍歷需要借助循環(huán)控制語(yǔ)句進(jìn)行迭代元素。
個(gè)人認(rèn)為iterator封裝了循環(huán)體遍歷元素的細(xì)節(jié),使得編程人員無(wú)需關(guān)心集合結(jié)構(gòu),以及訪問(wèn)元素的操作。
例如:
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來(lái)說(shuō),使用一個(gè)統(tǒng)一的接口來(lái)訪問(wèn)具體的集合元素.
while(iterator.hasNext()){
Object o=iterator.next();//統(tǒng)一的接口來(lái)訪問(wèn)具體的集合元素.
}
添加回答
舉報(bào)