Java ArrayList遍歷修改代碼實(shí)例解析
用for-each 邊遍歷ArrayList 邊修改時(shí):
public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); System.out.println(list); for (String s : list) { if (s.equals("dd")) { list.remove(s); } } System.out.println(list); }
會報(bào)錯
可以改用如下方式:
① 用迭代器 iterator進(jìn)行遍歷刪除
public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); System.out.println(list); Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { String next = iterator.next(); if (next.equals("dd")) { iterator.remove(); } } System.out.println(list); }
②:使用最原始的 for循環(huán)
public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); System.out.println(list); for (int i = 0; i < list.size(); i++) { String s = list.get(i); if (s.equals("dd")) { list.remove(s); } } System.out.println(list); }
③:采用jdk8 Collection中新增的方法removeIf (個人推薦,簡潔快捷新特性)
public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); System.out.println(list); list.removeIf(next -> next.equals("dd")); System.out.println(list); }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決java編譯錯誤( 程序包javax.servlet不存在javax.servlet.*)
這篇文章主要介紹了解決java編譯錯誤的相關(guān)資料,主要解決 程序包javax.servlet不存在javax.servlet.*的問題,需要的朋友可以參考下2017-08-08Mybatis基于xml配置實(shí)現(xiàn)單表的增刪改查功能
這篇文章主要介紹了Mybatis基于xml配置實(shí)現(xiàn)單表的增刪改查,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04一個例子帶你看懂Java中synchronized關(guān)鍵字到底怎么用
synchronized是Java里的一個關(guān)鍵字,起到的一個效果是"監(jiān)視器鎖",它的功能就是保證操作的原子性,同時(shí)禁止指令重排序和保證內(nèi)存的可見性,下面這篇文章主要給大家介紹了關(guān)于如何通過一個例子帶你看懂Java中synchronized關(guān)鍵字到底怎么用的相關(guān)資料,需要的朋友可以參考下2022-10-10springboot集成nacos讀取nacos配置數(shù)據(jù)的原理
這篇文章主要介紹了springboot集成nacos讀取nacos配置數(shù)據(jù)的原理,文中有詳細(xì)的代碼流程,對大家學(xué)習(xí)springboot集成nacos有一定的幫助,需要的朋友可以參考下2023-05-05JavaEE組件commons-fileupload實(shí)現(xiàn)文件上傳、下載
這篇文章主要介紹了JavaEE組件commons-fileupload實(shí)現(xiàn)文件上傳、下載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10freemarker?jsp?java內(nèi)存方式實(shí)現(xiàn)分頁示例
這篇文章主要介紹了freemarker?jsp?java內(nèi)存方式實(shí)現(xiàn)分頁示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06