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

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

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

    posts - 54,  comments - 1,  trackbacks - 0

    項(xiàng)目中的問(wèn)題:ArrayList中可能存在重復(fù)值,需要將重復(fù)值剔除掉.剛開(kāi)始的想法是做一個(gè)嵌套循環(huán),將當(dāng)前值與之后的所有值比較,如果重復(fù)則將后面重復(fù)的值刪除掉.但是運(yùn)行后發(fā)現(xiàn),由于循環(huán)中刪除值后會(huì)影響到數(shù)組的索引值,所以會(huì)出現(xiàn)漏值和跳值的現(xiàn)象.

    仔細(xì)想想后,覺(jué)得應(yīng)該反向遍歷數(shù)組,這樣從后面刪除元素后不會(huì)影響到前面元素的索引值,可以避免前面的問(wèn)題:

     // 刪除ArrayList中重復(fù)元素
     public static void removeDuplicate(List list) {
      
    for (int i = 0; i < list.size() - 1; i++{
       
    for (int j = list.size() - 1; j > i; j--{
        
    if (list.get(j).equals(list.get(i))) {
         list.remove(j);
        }

       }

      }

      System.
    out.println(list);
     }


    可是這樣做,總覺(jué)得嵌套循環(huán)的效率很低,比較ArrayList大了以后的執(zhí)行時(shí)間.又想到HashSet中是不能有又重復(fù)值的,要是能用HashSet來(lái)過(guò)濾該多好.查了下JDK的文檔,發(fā)現(xiàn)HashSet有一個(gè)構(gòu)造函數(shù) public HashSet(Collection c),到網(wǎng)上一查,果然有這樣做的例子(http://blog.csdn.net/doodoofish/archive/2004/05/07/17922.aspx):

    // 刪除ArrayList中重復(fù)元素
     public static void removeDuplicate(List list) {
      HashSet h 
    = new HashSet(list);
      list.clear();
      list.addAll(h);
      System.
    out.println(list);
     }


     
    //刪除ArrayList中重復(fù)元素,保持順序
     public static void removeDuplicateWithOrder(List list) {
      Set 
    set = new HashSet();
      List newList 
    = new ArrayList();
      
    for (Iterator iter = list.iterator(); iter.hasNext();) {
       Object element 
    = iter.next();
       
    if (set.add(element))
        newList.add(element);
      }

      list.clear();
      list.addAll(newList);
      System.
    out.println("remove duplicate" + list);
     }


    可以看出:向Set中即使插入重復(fù)值,也只會(huì)保留個(gè)實(shí)例.

    不過(guò),運(yùn)行后發(fā)現(xiàn)使用循環(huán)的方法好像并不比Set過(guò)濾慢多少(1000條記錄,10~20毫秒),而且某些情況下Set過(guò)濾甚至比循環(huán)還慢(最慢一次是 311毫秒:60毫秒)

    posted on 2005-08-18 11:38 ZhuJun 閱讀(2003) 評(píng)論(1)  編輯  收藏 所屬分類: 開(kāi)發(fā)手記

    FeedBack:
    # re: 剔除ArrayList中的重復(fù)值
    2008-08-26 14:01 | nf
    根本不好用  回復(fù)  更多評(píng)論
      

    蜀中人氏,躬耕于珠海

    <2005年8月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(2)

    隨筆分類(71)

    隨筆檔案(54)

    博客

    文檔

    站點(diǎn)

    論壇

    搜索

    •  

    積分與排名

    • 積分 - 50731
    • 排名 - 980

    最新評(píng)論

    閱讀排行榜

    主站蜘蛛池模板: 色吊丝最新永久免费观看网站 | 久艹视频在线免费观看| 亚洲自偷自偷精品| 成人免费视频一区二区三区| 午夜亚洲乱码伦小说区69堂| 久久精品国产精品亚洲艾| 成人免费视频小说| 在线观看免费无码视频| 中文字幕亚洲男人的天堂网络| 亚洲阿v天堂在线2017免费| 国产激情免费视频在线观看| 亚洲色偷偷综合亚洲av78| 国产亚洲成人久久| 无遮免费网站在线入口| 一级毛片a女人刺激视频免费 | 亚洲国产人成在线观看| 亚洲人妻av伦理| 日本免费网址大全在线观看| 免费一级全黄少妇性色生活片 | 日韩精品无码免费视频| 亚洲精品在线免费观看| 亚洲色偷偷综合亚洲AV伊人| 国产精品成人免费福利| 一级毛片a女人刺激视频免费| 国产成人精品日本亚洲18图| 亚洲欧洲日产国码无码久久99| 国产精品视频永久免费播放| 中文字幕日本人妻久久久免费| 亚洲免费综合色在线视频| 午夜亚洲AV日韩AV无码大全| 又粗又黄又猛又爽大片免费 | 亚洲国产午夜福利在线播放| 波多野结衣免费在线观看| 久久久WWW免费人成精品| 亚洲AV成人精品日韩一区 | 91嫩草亚洲精品| 亚洲色婷婷一区二区三区| 国产免费卡一卡三卡乱码| 无码国产精品一区二区免费式影视| 永久在线观看免费视频| 一级特黄a大片免费|