Re: [問題] 字串計數

看板java作者 (派立肯)時間9年前 (2014/10/10 18:32), 9年前編輯推噓1(108)
留言9則, 2人參與, 最新討論串3/8 (看更多)
※ 引述《smith80512 (Henry)》之銘言: : 想請問版上前輩們 : 文章內容已經分割成字串陣列 : 如何計數該陣列重複的字串? : 並指顯示最多出現和次多出現的字串 : 以及利用ArrayList回傳? 1. 使用TreeMap, key: 字串 value:顯示次數 2. 在Constructor裡面寫Comparator,並Override compare method 把你要的logic寫入 3. for each所有String array,插入TreeMap, if 已經插入 value++ else 插入新紀錄 value = 1 4. TreeMap就已經依顯示次數排好序 如果每次都要collection sort是有一點沒有效率 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 121.98.152.58 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1412937171.A.35A.html

10/10 19:56, , 1F
collection sort只會有一次喔~~ 最後結算時才會 sort
10/10 19:56, 1F
你可能要看一下Collections 的sort用的是哪一種data structure 不是甚麼東西都可以丟到Collections去sort... Map就不行,請問用Map要怎麼樣轉成List再sort,願聞高見

10/10 20:01, , 2F
一般 sort 應該都是用 qsort 實作的吧,程式短又有效率
10/10 20:01, 2F

10/10 20:02, , 3F
可是我曾有一個需求:插入一個新值在已sort的陣列內resort
10/10 20:02, 3F

10/10 20:02, , 4F
這種 resort 不知它效率如何,可能就要自己打造了
10/10 20:02, 4F

10/10 20:03, , 5F
為什麼有這需求呢?因為我要收比如5000個有效數,剔除重
10/10 20:03, 5F

10/10 20:03, , 6F
覆;因此我就先讀取5000筆數字,排序後才容易剔除重覆
10/10 20:03, 6F

10/10 20:04, , 7F
第一次做完,比如有500筆重覆,那就再讀500筆,再resort
10/10 20:04, 7F

10/10 20:04, , 8F
總之就一直補讀重覆的部份,最後也許讀了7000筆才湊足
10/10 20:04, 8F

10/10 20:05, , 9F
目前我是手動做(行政),很累;如果要再做我就會寫程式了
10/10 20:05, 9F
※ 編輯: pelicanper (121.98.152.58), 10/10/2014 21:05:55 ※ 編輯: pelicanper (121.98.152.58), 10/10/2014 21:06:45
文章代碼(AID): #1KDxNJDQ (java)
討論串 (同標題文章)
文章代碼(AID): #1KDxNJDQ (java)