作者ClareQ (人比人Cheese人)
看板java
标题Re: [问题] 如不重覆便写入一档案?
时间Tue Jan 29 00:56:40 2008
※ 引述《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
1F:推 ryan11:3Q~我用TreeSet的确很好用~ 02/07 00:51