<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    今日在調試程序時,出現了 java.util.ConcurrentModificationException,出錯代碼如下:

    for(Iterator ite = candidateObjDtoList.iterator(); ite.hasNext(); ) {
           CandidateObjDto dto 
    = (CandidateObjDto)ite.next();
           
    if(dto.getType() == Constants.CANDIDATE_OBJ_TYPE_SET) {
                    dto.setVoteType(Constants.VOTE_TYPE_ABSTAIN);
           }
     else {
                   candidateObjDtoList.remove(dto);        
          }

    }
          在網上搜索到資料如下:
    在Map或者Collection的時候,不要用它們的API直接修改集合的內容,如果要修改可以用Iterator的remove()方法,例如:
        
    public void setReparation( Reparation reparation ) {
            
    for (Iterator it = this.reparations.iterator();it.hasNext();){    //reparations為Collection
                Reparation repa = (Reparation)it.next();
                
    if (repa.getId() == reparation.getId()){
                    
    this.reparations.remove(repa);
                    
    this.reparations.add(reparation);
                }

            }

       }


    如上寫會在運行期報ConcurrentModificationException,可以如下修改:

        
    public void setReparation( Reparation reparation ) {
            
    boolean flag = false;
            
    for (Iterator it = this.reparations.iterator();it.hasNext();){    //reparations為Collection
                Reparation repa = (Reparation)it.next();
                
    if (repa.getId() == reparation.getId()){
                    it.remove();
                    flag 
    = true;
                    
    break;
                }

            }

            
    if(flag){
              
    this.reparations.add(reparation);
            }

        }

         成功解決了所遇問題,成功后的代碼如下:
     
    for(Iterator ite = candidateObjDtoList.iterator(); ite.hasNext(); ) {
            CandidateObjDto dto 
    = (CandidateObjDto)ite.next();
            
    if(dto.getType() == Constants.CANDIDATE_OBJ_TYPE_SET) {
                    dto.setVoteType(Constants.VOTE_TYPE_ABSTAIN);
    //對該候選項投棄權票
            }
     else {
                     ite.remove();
            }

    }
       
    posted on 2008-11-03 16:07 seal 閱讀(259) 評論(0)  編輯  收藏 所屬分類: Java基礎
    主站蜘蛛池模板: 亚洲成av人片不卡无码| 亚洲中文字幕无码中文字在线| 亚洲色偷偷偷网站色偷一区| 18禁在线无遮挡免费观看网站| 亚洲香蕉成人AV网站在线观看| 免费播放国产性色生活片| 国产猛烈高潮尖叫视频免费| 亚洲高清一区二区三区电影| 国产成人免费福利网站| 免费夜色污私人影院网站电影| 亚洲成A∨人片天堂网无码| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 最近中文字幕无免费视频| 亚洲av日韩av无码av| 成人免费无码大片A毛片抽搐色欲| 亚洲熟妇AV一区二区三区浪潮 | 在线观看亚洲精品国产| a毛片久久免费观看| 亚洲天堂一区二区| 最新中文字幕免费视频| 男性gay黄免费网站| 久久精品夜色噜噜亚洲A∨| 男女作爱在线播放免费网站| 亚洲自偷自拍另类图片二区| 插B内射18免费视频| 三年片在线观看免费观看大全中国| 国产自偷亚洲精品页65页| 最近免费字幕中文大全视频| 亚洲国产精品嫩草影院| 亚洲精品无码专区久久久 | 成人福利免费视频| 青草久久精品亚洲综合专区| 黑人大战亚洲人精品一区| 免费阿v网站在线观看g| 一级大黄美女免费播放| 亚洲午夜电影在线观看| 亚洲av麻豆aⅴ无码电影| 一级毛片免费播放| 免费人成再在线观看网站| 亚洲高清中文字幕| 免费a级毛片大学生免费观看|