Re: [問題] 如不重覆便寫入一檔案?

看板java作者 (人比人Cheese人)時間18年前 (2008/01/29 00:56), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《ryan11 (我叫雷恩)》之銘言: : 想要寫入另一個文字檔案中 : 且要此ip沒有重覆過再加入此檔案 : 要怎麼寫比較好呢? : 我有想過在從原檔案抓的時候 : 就先存成array,然後比對沒重覆再加入這array : 最後再寫入檔案 : 但這些ip可能會有數萬個以上 : 我覺得可能太大了 : 所以我還是想先抓的就先寫入文字檔案 : 然後再比對這檔案裡有沒有重覆的 : 沒有再加入 讀讀寫寫的io往往是系統效能的瓶頸, 盡量把事情放在記憶體裡面做是最快的, 假設有100,000筆不重複ip的String物件,長度算20bytes, 也不過佔100,000*20bytes=2,000,000bytes=2,000kb=2mb而已, 所以最好像cache一樣, 讓讀取磁碟或網路資源的頻率最小化才快。 如果要過濾掉重複的物件, 首選是實作java.util.Set的物件, 如HashSet,效能最快, 或是TreeSet,寫入到檔案時資料就已經過排序囉, 或是LinkedHashSet,可以依照當初插入的先後順序讀出, 不推薦自己去實作過濾比對的演算法。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.134.222

02/07 00:51, , 1F
3Q~我用TreeSet的確很好用~
02/07 00:51, 1F
文章代碼(AID): #17dWbAkk (java)
文章代碼(AID): #17dWbAkk (java)