如何正确的在一个循环中删除ArrayList中的元素。
生活随笔
收集整理的這篇文章主要介紹了
如何正确的在一个循环中删除ArrayList中的元素。
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
-
如果使用普通for循環(huán)直接刪除會(huì)出現(xiàn)IndexOutOfBoundsException異常,非法索引。
ArrayList<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); list.add("2"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); // 這樣做肯定拋異常,非法訪問(wèn)數(shù)據(jù)越界 int len = list.size(); for (int i = 0; i < len; i++) {if("1".equals(list.get(i))){list.remove(i);} } //Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4 //改進(jìn)后,刪除元素后更新List長(zhǎng)度,更新循環(huán)下標(biāo)。但是這樣的可讀性很差。鬼知道你在寫什么。。。 int len = list.size(); for (int i = 0; i < len; i++) {if("1".equals(list.get(i))){list.remove(i);--len;--i;}} //另外一種方式 Iterator<String> sListIterator = list.iterator(); while(sListIterator.hasNext()){ String e = sListIterator.next(); //注意了if(e.equals("1")){ sListIterator.remove(); } }
轉(zhuǎn)載于:https://my.oschina.net/z201/blog/1239961
總結(jié)
以上是生活随笔為你收集整理的如何正确的在一个循环中删除ArrayList中的元素。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一个MVP+RxJava+Retrofi
- 下一篇: 1.2存储系统