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

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

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

    posts - 110, comments - 101, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    /**
     * 
     
    */

    package com.test;

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.concurrent.CopyOnWriteArrayList;

    /**
     * 
    @author hello_yun
     *
     
    */

    public class ListOperation
    {

        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args)
        
    {
            List
    <Integer> list1 = new ArrayList<Integer>();
            List
    <Integer> list2 = new CopyOnWriteArrayList<Integer>();
            list1.add(
    1);
            list1.add(
    2);
            list1.add(
    3);
            
            list2.add(
    3);
            list2.add(
    4);
            
    //        try
    //        {
    //            for(Integer in : list1){
    //                list1.remove(in);//直接循環 刪除對象會拋異常
    //            }
    //        } catch (Exception e)
    //        {
    //            System.out.println("list1 size : "+list1.size());
    //            System.out.println("循環list1 異常 : "+e);
    //        }
            
            
            
    for(Integer in : list2){
                list2.remove(in);
                System.out.println(
    "list2 : "+list2.size());
            }

            
             
            
            list1.add(
    1);
            list1.add(
    2);
            
            list2.add(
    3);
            list2.add(
    4);
            
            
    for (Iterator iterator = list1.iterator(); iterator.hasNext();)
            
    {
                iterator.next();
                iterator.remove();
            }

            
            
            
    try
            
    {
                
    for (Iterator iterator = list2.iterator(); iterator.hasNext();)
                
    {
                    iterator.next();
                    iterator.remove();
                }


            }
     catch (Exception e)
            
    {
                System.out.println(
    "copyOnWriteArrayList remove : "+ e);
            }

            
            
    //-------------這種方式 不會拋異常 -------------------------
            try
            
    {
                
    for(int i=0;i<list1.size();i++){
                    list1.remove(i);
                }


            }
     catch (Exception e)
            
    {
                System.out.println(
    "list1 size : "+list1.size());
                System.out.println(
    "循環list1 異常 : "+e);
            }


        }


    }


    使用 copyOnWriteArrayList時 ,通過 list.remove()方法是安全的 但是使用iterator.remove是會拋異常的
    查看copyOnWriteArrayList源碼 會發現 iterator.remove方法的實現是直接拋異常的
            /**
             * Not supported. Always throws UnsupportedOperationException.
             * @throws UnsupportedOperationException always; <tt>remove</tt>
             *         is not supported by this iterator.
             */
            public void remove() {
                throw new UnsupportedOperationException();
            }

    但是通過ArrayList實現時, list.remove會拋異常 java.util.ConcurrentModificationException,
    但是 ArrayList的 iterator.remove不會拋異常




    評論

    # re: list 循環時 remove方法 異常 與 處理 方式 [未登錄]  回復  更多評論   

    2015-12-09 11:05 by Young
    使用for(int i=0;i<list1.size();i++)這種形式去remove元素,雖然不會拋異常,但是未能正確的remove元素,最后的list1的size不等于0

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 午夜免费福利视频| 丝袜捆绑调教视频免费区| 国产产在线精品亚洲AAVV| 日日摸夜夜添夜夜免费视频| 一区二区三区视频免费观看| 久久免费观看国产精品88av| 青青草a免费线观a| 国产在线ts人妖免费视频| 红杏亚洲影院一区二区三区 | 四虎成人精品永久免费AV| 中文免费观看视频网站| 日韩毛片无码永久免费看| 中国亚洲女人69内射少妇| 亚洲视频免费播放| 久久久久久亚洲av无码蜜芽| 黄桃AV无码免费一区二区三区| 最近中文字幕高清免费中文字幕mv | 久久精品国产亚洲AV天海翼| 中文在线观看免费网站| 无码国产精品一区二区免费式影视| 日韩一级视频免费观看| 亚洲精品蜜桃久久久久久| tom影院亚洲国产一区二区| 午夜不卡AV免费| 亚洲精品视频免费看| 无码欧精品亚洲日韩一区夜夜嗨 | 色www永久免费网站| 色窝窝免费一区二区三区| 亚洲精品线路一在线观看| 亚洲美免无码中文字幕在线| 亚洲精品伦理熟女国产一区二区| 在线观看免费黄网站| 日韩免费一级毛片| 久久精品国产亚洲AV高清热| 狠狠综合亚洲综合亚洲色| 最近2019免费中文字幕视频三| 国产精品四虎在线观看免费 | 国产日韩AV免费无码一区二区| AA免费观看的1000部电影| 激情97综合亚洲色婷婷五| 亚洲无人区码一二三码区别图片|