java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析
Java list利用遍歷進(jìn)行刪除操作3種方法解析
這篇文章主要介紹了Java list利用遍歷進(jìn)行刪除操作3種方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
Java三種遍歷如何進(jìn)行l(wèi)ist的便利刪除:
1、for循環(huán):
常見初五寫法:(由于下標(biāo)問題達(dá)不到想要效果)
for(int i=0;i
if(list.get(i).equals("del"))
list.remove(i);
}
應(yīng)該改為:(倒序操作避免下標(biāo)問題)
int size = list.size();
for(int i=size-1;i>=0;i--){
if(list.get(i).equals("del"))
list.remove(i);
}
2、增強(qiáng)for循環(huán)(foreach循環(huán)):
常見錯(cuò)誤:(會(huì)拋出ConcurrentModificationException)
for(String x:list){
if(x.equals("del"))
list.remove(x);
}
應(yīng)改為:
//cowlist為原list
CopyOnWriteArrayList list = new CopyOnWriteArrayList(cowList);
for(String x:list){
if(x.equals("del"))
list.remove(x);
}
3、iterator遍歷:(注意要是用迭代器的remove方法,不能使用list的remove方法)
Iterator it = list.iterator();
while(it.hasNext()){
String x = it.next();
if(x.equals("del")){
it.remove();
}
}
最好使用Iterator遍歷。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
時(shí)間: 2020-01-09
1. 首先List集合繼承與Collection,是一個(gè)接口. ①? Collection (集合框架是JDK1.2版本出現(xiàn)的) ②?? list:是有序的,元素可以重復(fù),以為該集合體系有索引. ?? 經(jīng)常用到的是實(shí)現(xiàn)該接口的ArrayList和LinkedList類 ③?? Arraylist:? 底層的數(shù)據(jù)結(jié)構(gòu)使用的是數(shù)組結(jié)構(gòu), 特點(diǎn): 查詢速度很快,但是增刪稍慢.線程不同步 LinkedList: 底層使用的是鏈表數(shù)據(jù)結(jié)構(gòu). 特點(diǎn): 增刪速度很快,查詢稍慢. Ve
本文實(shí)例講述了java使用ArrayList遍歷及效率比較.分享給大家供大家參考.具體如下: ArrayList arrL = new ArrayList(); ArrayList arrLTmp1 = new ArrayList(); ArrayList arrLTmp2 = new ArrayList(); ArrayList arrLTmp3 = new ArrayList(); ArrayList arrLTmp4 = new ArrayList(); for (int i=0;i<10
遍歷刪除List或Map中的元素有很多種方法,當(dāng)運(yùn)用不當(dāng)?shù)臅r(shí)候就會(huì)產(chǎn)生問題.下面通過這篇文章來(lái)再學(xué)習(xí)學(xué)習(xí)吧. 一.List遍歷過程中刪除元素 使用索引下標(biāo)遍歷的方式 示例:刪除列表中的2 public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); list.add(2); list.add(3); list.add(
一.對(duì)List的遍歷有三種方式?? List list = new ArrayList(); list.add("testone"); list.add("testtwo"); ... 第一種: for(Iterator it = list.iterator(); it.hasNext(); ) { .... } 這種方式在循環(huán)執(zhí)行過程中會(huì)進(jìn)行數(shù)據(jù)鎖定,??? 性能稍差,??? 同
需求說(shuō)明 實(shí)現(xiàn)思路 見代碼注釋 代碼內(nèi)容 使用list儲(chǔ)存,遍歷,查詢,刪除 import java.util.ArrayList; import java.util.List; /** * @auther::9527 * @Description: 第七題 * @program: 多線程 * @create: 2019-08-09 23:39 */ public class Seventh { public static void main(String[] args) { //初始化企鵝信息
今天在做項(xiàng)目時(shí),需要?jiǎng)h除List和Set中的某些元素,當(dāng)時(shí)使用邊遍歷,邊刪除的方法,卻報(bào)了以下異常: ConcurrentModificationException 為了以后不忘記,使用爛筆頭把它記錄如下: 錯(cuò)誤代碼的寫法,也就是報(bào)出上面異常的寫法: Set set = this.getUserDao().getAll(qf).get(0).getActionCheckWorks(); for(CheckWork checkWork : set){ if(checkWor
詳解Java中l(wèi)ist,set,map的遍歷與增強(qiáng)for循環(huán) Java集合類可分為三大塊,分別是從Collection接口延伸出的List.Set和以鍵值對(duì)形式作存儲(chǔ)的Map類型集合. 關(guān)于增強(qiáng)for循環(huán),需要注意的是,使用增強(qiáng)for循環(huán)無(wú)法訪問數(shù)組下標(biāo)值,對(duì)于集合的遍歷其內(nèi)部采用的也是Iterator的相關(guān)方法.如果只做簡(jiǎn)單遍歷讀取,增強(qiáng)for循環(huán)確實(shí)減輕不少的代碼量. 集合概念: 1.作用:用于存放對(duì)象 2.相當(dāng)于一個(gè)容器,里面包含著一組對(duì)象,其中的每個(gè)對(duì)象作為集合的一個(gè)元素出現(xiàn) 3.jav
本文實(shí)例講述了Java集合Set.List.Map的遍歷方法,分享給大家供大家參考. 具體方法如下: package com.shellway.javase; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.uti
前言 通過本文你可以了解List的五種遍歷方式及各自性能和foreach及Iterator的實(shí)現(xiàn),加深對(duì)ArrayList和LinkedList實(shí)現(xiàn)的了解.下面來(lái)一起看看吧. 一.List的五種遍歷方式 1.for each循環(huán) List list = new ArrayList(); for (Integer j : list) { // use j } 2.顯示調(diào)用集合迭代器 List list = new Ar
java arrayList遍歷的四種方法及Java中ArrayList類的用法 package com.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArrayListDemo { public static void main(String args[]){ List list = new ArrayList
整理了關(guān)于java中map的遍歷的四種方法: import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;publicclassMapTest{privateMap map;publicMapTest(){??map =newHashMap();
有關(guān)數(shù)組的基礎(chǔ)知識(shí),有很多方面,比方說(shuō)初始化,引用,遍歷,以及一維數(shù)組和二維數(shù)組,今天我們先看看數(shù)組復(fù)制的有關(guān)內(nèi)容. 來(lái)源于牛客網(wǎng)的一道選擇題: JAVA語(yǔ)言的下面幾種數(shù)組復(fù)制方法中,哪個(gè)效率最高? A.for循環(huán)逐一復(fù)制 B.System.arraycopy C.System.copyof D.使用clone方法 效率:System.arraycopy>clone>Arrays.copyOf>for循環(huán) 1.System.arraycopy的用法: public static void
其實(shí)大家都知道多線程傳值有三種方式: 1:通過構(gòu)造方法傳遞數(shù)據(jù) 2:通過變量和方法傳遞數(shù)據(jù) 3:通過回調(diào)函數(shù)傳遞數(shù)據(jù) 那么博主有個(gè)非常變態(tài)的需求,所以找出了第四種實(shí)現(xiàn)方式,先看效果圖: 動(dòng)態(tài)Cron4j調(diào)度器,我曾經(jīng)發(fā)過類似的文章,可以去搜索一下. 點(diǎn)擊執(zhí)行走下邊的代碼,然后根據(jù)類名反編譯 public static void executeCron4j(String packageClass){ try { Object taskObj = classNewInstance(packageCl
1. DOM(JAXP Crimson解析器) DOM是用與平臺(tái)和語(yǔ)言無(wú)關(guān)的方式表示XML文檔的官方W3C標(biāo)準(zhǔn).DOM是以層次結(jié)構(gòu)組織的節(jié)點(diǎn)或信息片斷的集合.這個(gè)層次結(jié)構(gòu)允許開發(fā)人員在樹中尋找特定信息.分析該結(jié)構(gòu)通常需要加載整個(gè)文檔和構(gòu)造層次結(jié)構(gòu),然后才能做任何工作.由于它是基于信息層次的,因而DOM被認(rèn)為是基于樹或基于對(duì)象的.DOM以及廣義的基于樹的處理具有幾個(gè)優(yōu)點(diǎn).首先,由于樹在內(nèi)存中是持久的,因此可以修改它以便應(yīng)用程序能對(duì)數(shù)據(jù)和結(jié)構(gòu)作出更改.它還可以在任何時(shí)候在樹中上下導(dǎo)航,而不是像SAX
python中,遍歷dict的方法有四種.但這四種遍歷的性能如何呢?我做了如下的測(cè)試 l = [(x,x) for x in xrange(10000)] d = dict(l) from time import clock t0=clock() for i in d: t = i + d[i] t1=clock() for k,v in d.items(): t = k + v t2=clock() for k,v in d.iteritems(): t = k + v t3=clock()
XML現(xiàn)在已經(jīng)成為一種通用的數(shù)據(jù)交換格式,它的平臺(tái)無(wú)關(guān)性,語(yǔ)言無(wú)關(guān)性,系統(tǒng)無(wú)關(guān)性,給數(shù)據(jù)集成與交互帶來(lái)了極大的方便.對(duì)于XML本身的語(yǔ)法知識(shí)與技術(shù)細(xì)節(jié),需要閱讀相關(guān)的技術(shù)文獻(xiàn),這里面包括的內(nèi)容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transform
一.餓漢式單例類 復(fù)制代碼 代碼如下: public class Singleton? {? ??? private Singleton(){ } private static Singleton instance = new Singleton(); private static Singleton getInstance(){? ??????? return instance;? ??? }? } 特點(diǎn):餓漢式提前實(shí)例化,沒有懶漢式中多線程問題,但不管我們是不是調(diào)用getInstance()
XML現(xiàn)在已經(jīng)成為一種通用的數(shù)據(jù)交換格式,它的平臺(tái)無(wú)關(guān)性,語(yǔ)言無(wú)關(guān)性,系統(tǒng)無(wú)關(guān)性,給數(shù)據(jù)集成與交互帶來(lái)了極大的方便.對(duì)于XML本身的語(yǔ)法知識(shí)與技術(shù)細(xì)節(jié),需要閱讀相關(guān)的技術(shù)文獻(xiàn),這里面包括的內(nèi)容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transform
本文實(shí)例講述了Java實(shí)現(xiàn)Map集合遍歷的四種常見方式與用法.分享給大家供大家參考,具體如下: ~Map集合是鍵值對(duì)形式存儲(chǔ)值的,所以遍歷Map集合無(wú)非就是獲取鍵和值,根據(jù)實(shí)際需求,進(jìn)行獲取鍵和值 1. 無(wú)非就是通過map.keySet()獲取到值,然后根據(jù)鍵獲取到值 for(String s:map.keySet()){ System.out.println("key : "+s+" value : "+map.get(s)); } 2. 通過Map.Entry(
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的java list 删除 遍历_Java list利用遍历进行删除操作3种方法解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 湖南人为什么喜欢吃槟榔?
- 下一篇: java collections.sor