锁定老帖子 主题:将HashMap文件化
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-20
最后修改:2011-04-20
如果不想重造轮子的话可以考虑使用oracle的 bdb je,其collections框架提供了map的持久化实现。 其中的 com.sleepycat.collections.StoredMap 应该能满足你的需要,要注意的是je是dual licence.
|
|
返回顶楼 | |
发表时间:2011-04-20
考虑一下 jdbm2
http://code.google.com/p/jdbm2/ |
|
返回顶楼 | |
发表时间:2011-04-20
shguan2010 写道 考虑一下 jdbm2
http://code.google.com/p/jdbm2/ 不错的东东 |
|
返回顶楼 | |
发表时间:2011-04-21
lenozhi 写道 shguan2010 写道 考虑一下 jdbm2
http://code.google.com/p/jdbm2/ 不错的东东 为什么不试一下derby呢? |
|
返回顶楼 | |
发表时间:2011-04-21
看你这个HashMap文件化,我想是否可以遍历一遍,存到sqlite中然后利用数据库寻找重复的。
java使用sqlite 就一个jar包(http://www.zentus.com/sqlitejdbc/)就行了,最后形成的也就一个文件。用完文件直接删了就行了。 |
|
返回顶楼 | |
发表时间:2011-04-21
renwolang521 写道 看你这个HashMap文件化,我想是否可以遍历一遍,存到sqlite中然后利用数据库寻找重复的。
java使用sqlite 就一个jar包(http://www.zentus.com/sqlitejdbc/)就行了,最后形成的也就一个文件。用完文件直接删了就行了。 不错,我去试试。看看对大数据量的支持如何 |
|
返回顶楼 | |
发表时间:2011-04-21
试用了一下jdbm-2.0.jar这个包,100万行数据插入,就是从1到100万,10行一提交。共用了38秒。使用内存14M左右,太NB。严重鄙视我提交的烂代码。
|
|
返回顶楼 | |
发表时间:2011-04-21
bloom过滤器
|
|
返回顶楼 | |
发表时间:2011-04-21
把那个文本作为oracle 外部表,然后用sql来排除
|
|
返回顶楼 | |
发表时间:2011-04-22
你这行事先知道吗?
知道的话遍历一遍,把hash相同的在内存里比较不就完了? 不知道就学数据库建B+树,用file based hash空间太大,肯定不合算。其实不用那么麻烦,建张表,建个UK,然后全部insert进去不就完了?千万而已,又不是千亿,数据库吃得消。 |
|
返回顶楼 | |