在Java中,如果要在遍歷List的過(guò)程中刪除元素,可以使用Iterator來(lái)進(jìn)行操作,而不是直接使用for循環(huán)。因?yàn)橹苯邮褂胒or循環(huán)遍歷List并刪除元素的話(huà)會(huì)導(dǎo)致ConcurrentModificationException異常。
以下是使用Iterator實(shí)現(xiàn)在遍歷List的過(guò)程中刪除元素的示例代碼:
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
if (element.equals("B")) {
iterator.remove();
}
}
for (String element : list) {
System.out.println(element);
}
在上面的示例代碼中,我們首先創(chuàng)建一個(gè)ArrayList并添加了三個(gè)元素。然后通過(guò)獲取Iterator對(duì)象來(lái)遍歷List,當(dāng)遇到元素為"B"時(shí),使用iterator.remove()方法來(lái)刪除該元素。最后使用增強(qiáng)for循環(huán)打印刪除元素后的List內(nèi)容。
值得注意的是,在使用Iterator的過(guò)程中,一旦調(diào)用了iterator.remove()方法,List中的元素會(huì)被刪除,并且iterator的狀態(tài)也會(huì)發(fā)生改變,所以在刪除元素后不必再次調(diào)用iterator.next()。