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

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

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

    simmone

    今天才知道deep clone這回事,慚愧

    今天的一段代碼:
    ??? List lista = new ArrayList();
    ??? /*
    ????賦值給lista
    ?? */

    ?? List listb = (ArrayList)((ArrayList)lista.clone());

    ?? /*
    ?? 用iterator取出內容進行修改
    ?? */

    ? 問題出現了:現在再用lista時,發現它的內容被修改過了。這是為什么呢?我??? 已clone()了呀。原來Java中List(包括Map等)的clone()執行的是shadow clone,也就是它只是拷貝了引用,如果將clone()后的內容進行了修改,它就會不知不覺中將原來的內容也進行了更改(其實就是一個)。
    解決方法:自己進行deep clone()
    List listb = new ArrayList();
    for(Iterator ie = lista.iterator();ie.hasNext();)
    {
    ??? Object a = (Object)ie.next();

    ??? Object b = new Object(a.get.., ..., ...);

    ??? listb.add(b);
    }

    注意:用List的addAll之類方法也是shadow clone


    posted on 2006-07-07 15:23 陳曉 閱讀(687) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統計

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品综合一二三区在线| 亚洲福利精品电影在线观看| 亚洲综合国产精品| 中文字幕一区二区三区免费视频| 免费亚洲视频在线观看| 久久国产精品免费观看| 亚洲精品乱码久久久久久久久久久久 | 国产亚洲一区二区三区在线观看 | 亚洲乱码一区二区三区在线观看 | 久久99毛片免费观看不卡| 亚洲人成人一区二区三区| 国色精品va在线观看免费视频| 国产AⅤ无码专区亚洲AV| 亚洲精品人成网在线播放影院| 亚洲免费网站在线观看| 亚洲午夜精品在线| 免费一区二区三区| 亚洲国产成人私人影院| 亚欧人成精品免费观看| 亚洲欧洲国产综合AV无码久久| 国产大片免费观看中文字幕| 成人精品综合免费视频| 成人毛片免费观看视频在线| 亚洲日本VA午夜在线电影| 日韩免费观看一级毛片看看| 亚洲AV色吊丝无码| 色吊丝最新永久免费观看网站| 粉色视频在线观看www免费| 国产亚洲精品成人AA片新蒲金| 久久免费视频观看| 亚洲AV无码乱码在线观看代蜜桃| 午夜dj免费在线观看| A级毛片成人网站免费看| 亚洲美女在线国产| 免费国产叼嘿视频大全网站| 亚洲成AV人片久久| 久久精品免费一区二区喷潮| 添bbb免费观看高清视频| 久久精品国产亚洲AV麻豆不卡 | 亚洲a∨无码精品色午夜| 亚洲人成网77777色在线播放|