最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決JAVA遍歷List集合,刪除數(shù)據(jù)時出現(xiàn)的問題

 更新時間:2020年07月15日 14:51:41   作者:時間-海  
這篇文章主要介紹了解決JAVA遍歷List集合時,刪除數(shù)據(jù)出現(xiàn)的問題,文中講解非常細致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

一、問題描述

有時候,我們會遇到在遍歷List集合的過程中刪除數(shù)據(jù)的情況。

看著自己寫的代碼,感覺完全沒有問題,但就是達不到預(yù)期的效果,這是為什么呢?下面我們來分析下

String str1 = new String("1"); 
String str2 = new String("2"); 
String str3 = new String("3"); 
String str4 = new String("4"); 
String str5 = new String("5"); 
List list = new ArrayList(); 
list.add(str1); 
list.add(str2); 
list.add(str3); 
list.add(str4); 
list.add(str5); 
System.out.println("list.size()=" + list.size());     
 
for (int i = 0; i < list.size(); i++) {        
    list.remove(i);      
  // i--; 
  //System.out.println(i+" "+list.get(i)+" "); 
}     
System.out.println("after remove:list.size()=" + list.size());

本來預(yù)期結(jié)果應(yīng)該是:

list.size()=5 
after remove:list.size()=0 

但實際上結(jié)果卻是:

list.size()=5 
after remove:list.size()=2

原因如下: List每remove掉一個元素以后,后面的元素都會向前移動 ,此時如果執(zhí)行i++,則剛剛移過來的元素沒有被讀取。

分析:

  • List中有5條數(shù)據(jù),需要循環(huán)5次,
  • 第一次數(shù)據(jù)為:1 2 3 4 5
  • 執(zhí)行完remove(0) 后,數(shù)據(jù)為 2 3 4 5  , i=1
  • 第二次數(shù)據(jù)為:2 3 4 5
  • 執(zhí)行完remove(1) 后,數(shù)據(jù)為 2 4 5  , i=2
  • 第三次數(shù)據(jù)為:2 4 5
  • 執(zhí)行完remove(2) 后,數(shù)據(jù)為 2 4  , i=3
  • 此時如果加上上面注釋的代碼 System.out.println(i+" "+list.get(i)+" "); 循環(huán)第4、5次時就會出現(xiàn)異常

二、解決方法

解決方法1:每移過一次后,再把 i 移回來

for (int i = 0; i < list.size(); i++) {        
  list.remove(i);      
  i--;       
}

解決方法2:先刪除后面的元素

for (int i = list.size()-1; i >= 0; i--) { list.remove(i); }

解決方法3:使用iterator刪除

for(Iterator it = list.iterator();it.hasNext();){       
  it.remove(); 
}

以上就是解決JAVA遍歷List集合時,刪除數(shù)據(jù)出現(xiàn)的問題的詳細內(nèi)容,更多關(guān)于JAVA遍歷List集合 刪除數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Mybatis使用foreach批量更新數(shù)據(jù)報無效字符錯誤問題

    Mybatis使用foreach批量更新數(shù)據(jù)報無效字符錯誤問題

    這篇文章主要介紹了Mybatis使用foreach批量更新數(shù)據(jù)報無效字符錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringQuartz定時任務(wù)核心組件JobDetail與Trigger配置

    SpringQuartz定時任務(wù)核心組件JobDetail與Trigger配置

    Spring框架與Quartz調(diào)度器的集成提供了強大而靈活的定時任務(wù)解決方案,本文主要介紹了SpringQuartz定時任務(wù)核心組件JobDetail與Trigger配置,具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法

    Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法

    本文主要介紹了Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 詳細解讀spring中的@Resource注解

    詳細解讀spring中的@Resource注解

    這篇文章主要介紹了詳細解讀spring中的@Resource注解,此注解來源于JSR規(guī)范(Java?Specification?Requests),其作用是找到依賴的組件注入到應(yīng)用來,它利用了JNDI技術(shù)查找所需的資源,需要的朋友可以參考下
    2023-10-10
  • Windows系統(tǒng)編寫bat腳本啟動、停止及重啟Java服務(wù)jar包

    Windows系統(tǒng)編寫bat腳本啟動、停止及重啟Java服務(wù)jar包

    在bat文件中我們將編寫一些代碼來運行Java jar文件,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)編寫bat腳本啟動、停止及重啟Java服務(wù)jar包的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • mybatis?實現(xiàn)字段大小寫賦值

    mybatis?實現(xiàn)字段大小寫賦值

    這篇文章主要介紹了mybatis?實現(xiàn)字段大小寫賦值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java代碼是如何被CPU狂飆起來的

    Java代碼是如何被CPU狂飆起來的

    無論是剛剛?cè)腴TJava的新手還是已經(jīng)工作了的老司機,恐怕都不容易把Java代碼如何一步步被CPU執(zhí)行起來這個問題完全講清楚。本文就帶你詳細了解Java代碼到底是怎么運行起來的。感興趣的同學(xué)可以參考閱讀
    2023-03-03
  • Spring Aware標記接口使用案例解析

    Spring Aware標記接口使用案例解析

    這篇文章主要介紹了Spring Aware標記接口使用案例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • springboot用controller跳轉(zhuǎn)html頁面的實現(xiàn)

    springboot用controller跳轉(zhuǎn)html頁面的實現(xiàn)

    這篇文章主要介紹了springboot用controller跳轉(zhuǎn)html頁面的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java遍歷Map對象集合的六種方式代碼示例

    Java遍歷Map對象集合的六種方式代碼示例

    Java中的Map是一種鍵值對映射的數(shù)據(jù)結(jié)構(gòu),它提供了一些常用的方法用于獲取、添加、刪除和修改元素,下面這篇文章主要給大家介紹了關(guān)于Java遍歷Map對象集合的六種方式,需要的朋友可以參考下
    2024-02-02

最新評論

读书| 禄丰县| 茂名市| 金沙县| 黄浦区| 莲花县| 瓮安县| 寿光市| 康平县| 买车| 常宁市| 郸城县| 永泰县| 沐川县| 福州市| 西城区| 会东县| 黑山县| 通海县| 阳西县| 韶山市| 怀来县| 南丰县| 台中市| 乃东县| 吉林省| 仪征市| 张家川| 潍坊市| 寿光市| 望江县| 虎林市| 江阴市| 商河县| 连云港市| 彝良县| 大厂| 黑山县| 西宁市| 古交市| 黄陵县|