在Java中,有兩種不同的方式來(lái)進(jìn)行迭代,即“在前”和“在后”的迭代方式。
// 在前迭代方式 Listlist = new ArrayList (); list.add(1); list.add(2); list.add(3); Iterator it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } // 在后迭代方式 List list = new ArrayList (); list.add(1); list.add(2); list.add(3); for (Integer i : list) { System.out.println(i); }
在前迭代方式中,我們使用迭代器的next()方法來(lái)得到下一個(gè)元素。在后迭代方式中,則使用for-each循環(huán)來(lái)遍歷數(shù)組并得到每個(gè)元素。
需要注意的是,在前迭代方式中,如果忘記調(diào)用next()方法,會(huì)導(dǎo)致循環(huán)永遠(yuǎn)不會(huì)結(jié)束。
在后迭代方式中,需要把要迭代的對(duì)象放在for-each循環(huán)的括號(hào)中。這種方式代碼更加簡(jiǎn)潔易讀,但是如果需要?jiǎng)h除元素,則需要使用迭代器的remove()方法。
在實(shí)際開(kāi)發(fā)中,我們可以根據(jù)需要來(lái)選擇使用哪種迭代方式。在需要對(duì)元素進(jìn)行刪除或修改時(shí),使用在前迭代方式會(huì)更為方便,而在后迭代方式則更符合代碼簡(jiǎn)潔易讀的原則。