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

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

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

    隨筆-193  評論-715  文章-1  trackbacks-0
    想想自己做JAVA也有好長時間了,在這些日子里,收獲了很多,當我還是一名初學者的時候,走了不少彎路,到現在為止,常??赡苓€是會走一些彎路。常常我會反思一下自己的過去寫的代碼,覺得很多代碼真的都很垃圾,或者效率也沒有做過考慮,偶爾會發現很多改進的辦法和一些新的思路,在這里作一些收集,以便于以后的開發。

    這篇文章會不定期更新,好的點子肯定會收集進來,如果您有什么這方面的好的經驗的話,也可以回復上來,我將會十分感謝您的支持和幫助,大家一起進步嘛。
    由于個人水平有限,文中不免有錯誤之處,還請各位兄弟姐妹們指正,不勝感激!

    1、去掉一個字符串數組中的重復項:(2006.04.11.)
    原來采用的方法:
    ?1?String[]?rid?=?request.getParameterValues("noattRid");
    ?2?//需要用一個臨時的變量把過濾后的結果這個存起來
    ?3?String[]?ridFiltered?=?new?String[rid.length];
    ?4?????????int?index?=?0;
    ?5?????????for?(int?i?=?0;?i?<?rid.length;?i++)?{
    ?6?????????????if?(!this.isExistString(ridFiltered,?rid[i])&&!rid[i].equals(""))?{
    ?7?????????????????ridFiltered[index++]?=?rid[i];
    ?8?????????????}
    ?9?????????}
    10?
    11?//還需要用一個方法來判斷在結果中是否存在此項,如下
    12??/**
    13??????*?用于查找某個字符串是否在一個字符串數組中
    14??????*?@param?dest?String[]
    15??????*?@param?str?String
    16??????*?return?boolean
    17??????*/
    18?
    19?????public?boolean?isExistString(String[]?dest,?String?str)?{
    20?????????boolean?flag?=?false;
    21?????????for?(int?i?=?0;?i?<?dest.length;?i++)?{
    22?????????????if?(str.equals(dest[i]))?{
    23?????????????????flag?=?true;
    24?????????????}
    25?????????}
    26?????????return?flag;
    27?????}

    看看,要多麻煩有多麻煩,來看看新方法:
    1?String[]?s?=?request.getParameterValues("noattRid");
    2?List?list?=?Arrays.asList(s);
    3?Set?set?=?new?HashSet(list);
    4//rid=(String?[])set.toArray();
    5 String[] temp = new String[set.size()];
    6 Iterator ite = set.iterator();
    7 for (int i = 0; ite.hasNext(); i++) {
    8??? temp[i] = (String) ite.next();
    9 }
    簡簡單單的幾行代碼即可搞定,無論是從程序的可讀性、優雅性還是效率方面都有很好的提升。
    擴展:你同時還可以運用上面的方法還判斷三個字符串是否相等(可進一步擴展至多個,但是似乎不太有實際意義),例程如下:
    1?String[]?s?=?{"one",?"two",?"two"};
    2?List?list?=?Arrays.asList(s);
    3?Set?set?=?new?HashSet(list);
    4?System.out.println(list.size()?==?set.size());?//?false

    posted on 2006-04-11 18:08 Robin's Programming World 閱讀(3365) 評論(9)  編輯  收藏 所屬分類: Java

    評論:
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-12 13:48 | edouglas
    呵呵,有些啟發,謝謝作者的心得:)  回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-12 14:00 | junglesong
    原來是用類庫代替算法.

    通常做法應該是插入排序后的數組吧,加上二分查找.  回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-12 15:41 | yukai zhao
    thanks,
    剛開始學習java  回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-12 18:22 | Robin's Java World
    不客氣,大家共同進步!  回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-13 09:19 | zhyiwww
    不錯,有創意,學習中…………  回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-13 15:43 | scorpional
    1 String[] s = request.getParameterValues("noattRid");
    2 List list = Arrays.asList(s);
    3 Set set = new HashSet(list);
    //4 rid=(String [])set.toArray();
    這個轉換你沒有問題么,我試了一下,這個set.toArray()就報錯,ClassCastException
      回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-14 17:40 | oliver456
    //4 rid=(String [])set.toArray();
    this is source code from AbstractCollection class
    public Object[] toArray() {
    Object[] result = new Object[size()];
    Iterator<E> e = iterator();
    for (int i=0; e.hasNext(); i++)
    result[i] = e.next();
    return result;
    }
    so we can convert directly
    if you are using jdk 1.5
    you can improve above code like this

    String[] s = request.getParameterValues("noattRid");
    List<String> list = Arrays.asList(s);
    Set <String>set = new HashSet<String>(list);
    String[] rid =set.toArray(new String[0]);
      回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2006-04-15 11:48 | scorpional
    恩,現在可以了  回復  更多評論
      
    # re: JAVA開發經驗及小技巧(不定期更新) 2007-07-16 14:09 | paul
    set中不允許有重復對象的運用  回復  更多評論
      
    主站蜘蛛池模板: 免费黄色一级毛片| 亚洲欧洲综合在线| 日韩在线a视频免费播放| 免费网站看av片| 一级毛片高清免费播放| 亚洲成AV人片高潮喷水| 亚洲乱码中文字幕小综合| 亚洲国产精品无码久久久蜜芽 | 国产亚洲av人片在线观看| 日本19禁啪啪无遮挡免费动图| 88av免费观看| 国产成人免费AV在线播放| 乱人伦中文视频在线观看免费| 亚洲国产区男人本色| 亚洲av无码片区一区二区三区| 久久久久久a亚洲欧洲AV| 久久亚洲高清综合| 亚洲欧洲一区二区三区| 免费国产在线观看| 国产一区二区免费在线| 在线观看国产情趣免费视频 | 国产成人精品亚洲日本在线| 911精品国产亚洲日本美国韩国| 亚洲gv白嫩小受在线观看 | 国内永久免费crm系统z在线| 久久不见久久见免费影院www日本| 黄网站色视频免费观看45分钟 | 在线免费观看a级片| 成人毛片18女人毛片免费96| 免费看国产成年无码AV片| 少妇高潮太爽了在线观看免费| 日韩欧毛片免费视频| 最近2019中文字幕免费看最新| 99热在线精品免费全部my| 最近2019中文字幕免费看最新 | 亚洲AV无码精品国产成人| 亚洲va中文字幕| 老司机午夜精品视频在线观看免费| 天天综合亚洲色在线精品| 特黄aa级毛片免费视频播放| 无码的免费不卡毛片视频|