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