看板 java 關於我們 聯絡資訊
最近在寫fp-growth的演算法 只寫到要建立Header table的地方 目前在判別transaction item的地方有點小疑問 因為我只放10筆 data在資料庫裡面 有'abcde'5個item 每筆transaction就隨機丟幾個items 例如 'abc' 'be'等等 abcde的data type是string 我目前的寫法 在判別每筆transaction的時候 是用 while(rs.next()){ String s = rs.getString(1); if(s.contents("a")){ a_count++; if(s.contents("b")){ b_count++; ....... } } else if(s.contents("b")){ b_count++; } ........ ..... } a_count 是指 全部transactions中a的總數 bcde亦同 初始值為0 由此可算出每個items 'a''b''c''d''e' 各被交易的次數 這個方法太土法煉鋼了= = 自己是想過用遞迴的方式下去跑 不過還沒寫出來 況且在item數增加的情況下 不可能再這麼寫了 想請教版大們有沒有可以運用的method可以處理類似的問題?? 感謝大家!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.216.43
lucky1lk:好眼熟的寫法阿... 09/02 17:36
lvlightvivi:把count用成陣列或list會比較簡單一點吧 迴圈就解決了 09/02 21:02
pig22022:我知道這方法很笨XD 有想過先丟到array之後再用迴圈處理 09/02 21:40
pig22022:不過因為在把資料丟array的時候一直產生error 待解決 09/02 21:42
ggyydotcom:HashMap<Set<string>, int> 嘗試用個Table,或許會讓這 09/04 14:26
ggyydotcom:問題比較好處理,前面放各階的pattern,後面存count 09/04 14:29
pig22022:感謝樓上版大的意見 目前我是用迴圈去處理 把每個string 09/04 20:47
pig22022:轉成char 用charAt()去判別每個item再轉回string 09/04 21:05
shaopin:可參考design pattern - strategy pattern 用OO來作 09/05 00:04