摘要:通過進行遍歷刪除符合條件的多個元素使用的方式也可以順利刪除和遍歷這里要使用的方法移除當前對象,如果使用的方法,則同樣會出現
1.通過增強的for循環刪除符合條件的多個元素
/** * 使用增強的for循環 * 在循環過程中從List中刪除元素以后,繼續循環List時會報ConcurrentModificationException */ public void listRemove() { List2.通過增強的for循環刪除符合條件的一個元素students = this.getStudents(); for (Student stu : students) { if (stu.getId() == 2) students.remove(stu); } }
/** ???* 像這種使用增強的for循環對List進行遍歷刪除,但刪除之后馬上就跳出的也不會出現異常 ???*/ ??public void listRemoveBreak() { ????List3.通過普通的for刪除刪除符合條件的多個元素students = this.getStudents(); ????for (Student stu : students) { ??????if (stu.getId() == 2) { ????????students.remove(stu); ????????break; ??????} ????} ??} ??
/** * 這種遍歷有可能會遺漏某個元素,因為刪除元素后List的size在 * 變化,元素的索引也在變化,比如你循環到第2個元素的時候你把它刪了, * 接下來你去訪問第3個元素,實際上訪問到的是原先的第4個元素。當訪問的元素 * 索引超過了當前的List的size后還會出現數組越界的異常,當然這里不會出現這種異常, * 因為這里每遍歷一次都重新拿了一次當前List的size。 */ public void listRemove2() { Liststudents = this.getStudents(); for (int i=0; i 4.通過Iterator進行遍歷刪除符合條件的多個元素
/** * 使用Iterator的方式也可以順利刪除和遍歷 */ public void iteratorRemove() { Liststudents = this.getStudents(); System.out.println(students); Iterator stuIter = students.iterator(); while (stuIter.hasNext()) { Student student = stuIter.next(); if (student.getId() % 2 == 0) //這里要使用Iterator的remove方法移除當前對象,如果使用List的remove方法,則同樣會出現ConcurrentModificationException stuIter.remove(); } System.out.println(students); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68289.html
摘要:刪除元素后,立即跳出,則正常退出,但不能向后繼續循環了刪除后立馬終端循環,會正常跳出,但代價是不能繼續向后循環了使用迭代器使用迭代器可,正確無誤的刪除,代碼簡潔優雅,推薦使用使用迭代器可,正確無誤的刪除注意這里時而不是 在工作中的許多場景下,我們都會使用到List這個數據結構,那么同樣的有很多場景下需要刪除List中的某一個元素或某幾個元素,那么我們該如何正確無誤地刪除List中的元素...
摘要:與稀疏數組對立的為密集數組,密集數組的索引會被持續的創建,并且其元素的數量等于其長度。創建一個長度為的數組,并初始化了個元素使用構造函數創建數組對象的時候,關鍵字是可以省略的。另外使用和刪除元素是影響數組的長度的。 說明:本文只總結了JavaScript數組在web端的行為,不包括NodeJs端的行為。本文不涉及類型化數組(TypedArray)的討論、總結。 一、什么是數組 數組的定...
摘要:原因是用發起任何形式的遍歷時,它的遍歷順序都是從最初就確定的,而在遍歷中刪除了元素會導致當前索引的變化,這樣一是會導致漏刪元素,二是會導致遍歷超過鏈表的長度。所以遍歷一個時要刪除其中的部分元素就需要其他的解決方案。 Python的for可以遍歷一個List,但是在遍歷的過程中刪除元素常常會得到意想不到的結果甚至程序出現異常,例如: lst = [1, 1, 0, 2, 0, 0, 8,...
摘要:允許從任一方向來遍歷對象,并在遍歷迭代過程中進行修改該對象,還能獲得迭代器的當前位置。這個構造函數是將返回了一個對象給,這也是的存儲實現原理。 一、容器產生的原因 1.數組的缺點:大小一旦給定就無法更改,除非復制到一個新的數組中,開銷大;而容器類都可以自動地調整自己的尺寸?! ?.容器功能的多樣性:容器可以實現各種不同要求,如按不同依據將元素進行排序或者保證容器內無重復元素等等。關...
閱讀 1837·2023-04-25 14:49
閱讀 3117·2021-09-30 09:47
閱讀 3100·2021-09-06 15:00
閱讀 2224·2019-08-30 13:16
閱讀 1436·2019-08-30 10:48
閱讀 2668·2019-08-29 15:11
閱讀 1287·2019-08-26 14:06
閱讀 1663·2019-08-26 13:30