/* 問題:統計字符串中各個字符出現的次數 按照正常的思路,寫出了以下代碼: */ char[] chs = str.toCharArray(); Map<Character,Integer> map = new TreeMap<Character,Integer>(); for(int i=0;i<chs.length;i++){ Integer value = map.get(chs[i]); if(value == null){ //若是不存在,就put次數1進去 map.put(chs[i], 1); }else{ //若是存在,次數++ map.put(chs[i], value + 1); } } /* 優化:既然是每次都會put,那我就寫一句put在最後即是; 一、若是map.get(chs[i])爲null, 那我就簡單的認爲這個字符次數爲0(其實null和0是不一樣的) 而後給value賦值爲0; 二、不爲null,put的時候次數++就行了; 三、最後一句即是put語句。 優化後的代碼以下: */ //直接for循環了 for(int i=0;i<chs.length;i++){ Integer value = map.get(chs[i]); if(value == null) value = 0; map.put(chs[i], value + 1); } /* 說好的思考,總結:算法之道的從無到有的思想! */
鄙人昨晚睡覺前的思考,今日作個總結。
若看官有什麼想法,請多多指點!java