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

關(guān)于Java中增強(qiáng)for循環(huán)使用的注意事項(xiàng)

 更新時(shí)間:2021年06月16日 09:15:30   作者:一起隨緣  
for循環(huán)語句是java循環(huán)語句中最常用的循環(huán)語句,一般用在循環(huán)次數(shù)已知的情況下使用,這篇文章主要給大家介紹了關(guān)于Java中增強(qiáng)for循環(huán)使用的注意事項(xiàng),需要的朋友可以參考下

序言

for循環(huán)語句是java循環(huán)語句中最常用的循環(huán)語句,一般用在循環(huán)次數(shù)已知的情況下使用。for循環(huán)語句的語法格式如下:

java語言 for語句的用法
 
for(初始化表達(dá)式;循環(huán)條件;操作表達(dá)式){
         執(zhí)行語句
         ……
}

開發(fā)過程中,使用for循環(huán)遍歷集合或數(shù)組是司空見慣的一件事,大家也習(xí)慣這樣操作,但是有時(shí)候?yàn)榱撕啽?,我們可能?huì)使用增強(qiáng)for循環(huán),也就是類似for(String s : strList )寫法,但是有時(shí)候稍有不慎,可能會(huì)帶來一些莫名奇妙的錯(cuò)誤,比如ConcurrentModificationException,剛開始可能大家也會(huì)一頭霧水,反復(fù)檢查代碼并沒有發(fā)現(xiàn)有什么寫的不對的地方。確實(shí),代碼并沒有問題,只是使用增強(qiáng)for循環(huán)的時(shí)候,有些注意事項(xiàng)需要我們清楚,本文主要針對開發(fā)中遇到的問題和代碼示范下增強(qiáng)for的錯(cuò)誤用法。

代碼示例

1.錯(cuò)誤寫法

if(fileList.size() > 0){
    for(UserFile userFile : fileList){
        if(Constants.IS_DIR_YES == userFile.getIsDir()){//如果是文件夾,遞歸查找子文件,然后放入返回的結(jié)果list中
            childFileList = getChildFile(userFile.getId());
            if(childFileList.size() > 0){
                for(UserFile childUserFile : childFileList){
                    //給子文件賦予上一級的文件夾路徑
                    childUserFile.setFilePath("/" + userFile.getFileName() + childUserFile.getFilePath());
                    fileList.add(childUserFile);
                }
            }
        }
    }
}

2.正確寫法

if(fileList.size() > 0){
    for (int i = 0; i < fileList.size(); i++) {
        if(Constants.IS_DIR_YES == fileList.get(i).getIsDir()){//如果是文件夾,遞歸查找子文件,然后放入返回的結(jié)果list中
            childFileList = getChildFile(fileList.get(i).getId());
            if(childFileList.size() > 0){
                for (int j = 0; j < childFileList.size(); j++) {
                    //給子文件賦予上一級的文件夾路徑
                    childFileList.get(j).setFilePath("/" + fileList.get(i).getFileName() + childFileList.get(j).getFilePath());
                    fileList.add(childFileList.get(j));
                }
            }
        }
    }
}

3.寫法區(qū)別及報(bào)錯(cuò)原因

區(qū)別:主要是將錯(cuò)誤寫法中的增強(qiáng)for循環(huán)換成普通的for循環(huán),如圖所示

原因分析:增強(qiáng)for循環(huán)其實(shí)內(nèi)部是通過迭代器實(shí)現(xiàn)的,我們知道在迭代器中,迭代的時(shí)候不允許修改集合中的對象,不然會(huì)拋出ConcurrentModificationException異常。而我們的錯(cuò)誤代碼中,對fileList集合調(diào)用了fileList.add(childUserFile)方法往集合中添加新元素,而迭代器卻不知道,所以也會(huì)報(bào)這樣的錯(cuò)誤信息。實(shí)際上,增加for循環(huán)或迭代器遍歷元素的時(shí)候,是不能通過集合修改元素的,改成普通for循環(huán)就行了。

總結(jié)

到此這篇關(guān)于Java中增強(qiáng)for循環(huán)使用的注意事項(xiàng)的文章就介紹到這了,更多相關(guān)Java增強(qiáng)for循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用iText生成PDF的步驟和示例

    Java使用iText生成PDF的步驟和示例

    iText 是一個(gè)用于創(chuàng)建和處理 PDF 文檔的開源 Java 庫,iText 主要用于生成 PDF 文件,可以將文本、圖像、表格、列表等內(nèi)容添加到 PDF 中,同時(shí)支持對 PDF 進(jìn)行編輯、合并、分割、加密、數(shù)字簽名等操作,本文介紹了Java使用iText生成PDF的步驟和示例
    2024-10-10
  • Spring @ComponentScan注解使用案例詳細(xì)講解

    Spring @ComponentScan注解使用案例詳細(xì)講解

    @ComponentScan注解的作用可以簡述為:將項(xiàng)目中所有被@Component注解直接或者間接標(biāo)記的類---->組裝成BeanDefinition---->然后以key=beanName, value=BeanDefinition的形式存儲(chǔ),為后續(xù)生成bean對象做準(zhǔn)備
    2023-03-03
  • java中i = i++和i =++i的深入講解

    java中i = i++和i =++i的深入講解

    這篇文章主要介紹了java中i = i++和i =++i的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java中==符號與equals()的使用詳解(測試兩個(gè)變量是否相等)

    Java中==符號與equals()的使用詳解(測試兩個(gè)變量是否相等)

    下面小編就為大家?guī)硪黄狫ava中==符號與equals()的使用詳解(測試兩個(gè)變量是否相等)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java?集合框架?Queue?和?Stack?體系

    Java?集合框架?Queue?和?Stack?體系

    這篇文章主要介紹了Java?集合框架Queue和Stack體系,Stack?繼承自Vector,并拓展了五個(gè)允許將容器視為棧結(jié)構(gòu)的操作,Queue接口定義了隊(duì)列的能力,它繼承自Collection,更多相關(guān)內(nèi)容需要得小伙伴可以參考一下
    2022-06-06
  • 快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問題

    快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問題

    這篇文章主要介紹了快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 一文詳解Java攔截器與過濾器的使用

    一文詳解Java攔截器與過濾器的使用

    這篇文章主要為大家詳細(xì)介紹了Java中攔截器與過濾器的使用與區(qū)別,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定參考價(jià)值,需要的可以參考一下
    2022-04-04
  • Java 數(shù)組轉(zhuǎn)List的四種方式小結(jié)

    Java 數(shù)組轉(zhuǎn)List的四種方式小結(jié)

    最近看了下數(shù)組轉(zhuǎn)List的實(shí)現(xiàn)方法,總共有4種,本文就詳細(xì)的介紹一下,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • IDEA不識(shí)別Java文件:文件變橙色&顯示后綴名.java的解決

    IDEA不識(shí)別Java文件:文件變橙色&顯示后綴名.java的解決

    這篇文章主要介紹了IDEA不識(shí)別Java文件:文件變橙色&顯示后綴名.java的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)

    mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)

    這篇文章主要為大家介紹了mall整合SpringSecurity及JWT實(shí)現(xiàn)認(rèn)證授權(quán)實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評論

江孜县| 出国| 同仁县| 洛宁县| 金溪县| 兴安县| 广宗县| 合阳县| 丽江市| 富顺县| 静海县| 茂名市| 临洮县| 新龙县| 安西县| 九龙坡区| 潢川县| 榆中县| 翁源县| 红原县| 五家渠市| 池州市| 黄浦区| 高安市| 瑞安市| 同江市| 西乌| 高唐县| 钦州市| 山东省| 甘泉县| 连平县| 府谷县| 宿州市| 玛曲县| 仙居县| 皮山县| 五台县| 临高县| 杂多县| 安溪县|