Re: [問題] 如不重覆便寫入一檔案?
※ 引述《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
02/07 00:51, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):