有10万个用户的信息存储在文本文件,如何将重复的信息排除掉,给出解决的方法(至少2种) 有10万个用户的信息存储在文本文件,如何将重复的信息排除掉,给出解决的方法(至少2种) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.load到数据库,然后用distinct2.Map/Reduce算法 如果纯粹JAVA 处理 可以考虑使用map 方法一,把所有用户的信息,插到数据库中,然后去除重复即可。方法二,读取文件一次,在内存中创建用户信息的索引,通过索引读取用户信息,去除重复信息。比如,索引块的结构可以是: { 用户信息的MD5值或HashCode值; 用户信息在文件中的起始位置; } 这样,通过比较上述两项的值就可以去掉重复了。第一项的值,主要是为了提高效率,免去一些一盘操作。 因为,MD5值或HashCode不相同的用户,用户信息的一定不相同; 生成新文件的算法复杂度,要简单于,在原文件上去除重复的操作。 楼上的都说完了也一种是load进数据库,这种我比较常用,也方便一些纯java不好弄 Java对文字或者字符的接受代码是什么啊?(初学者) 请教javascript 焦点问题 java.bbs这样命名包? 如何访问其他窗体上的控件 我在用java applet编程时遇到一个播放音乐的难题,请帮忙 问个初级问题:用setText()方法只能在程序运行完之后才能显示吗,不能在运行中显示吗 关于正则表达式的"不包含" 学习JAVA过程中,发现一个问题,请朋友们帮我下 关于LinkList的使用 ***如何区别中文字符和英文字符?*** 字符串转换 jquery json from 的问题
2.Map/Reduce算法
方法二,读取文件一次,在内存中创建用户信息的索引,通过索引读取用户信息,去除重复信息。
比如,索引块的结构可以是:
{
用户信息的MD5值或HashCode值;
用户信息在文件中的起始位置;
}
这样,通过比较上述两项的值就可以去掉重复了。第一项的值,主要是为了提高效率,免去一些一盘操作。
因为,MD5值或HashCode不相同的用户,用户信息的一定不相同;
生成新文件的算法复杂度,要简单于,在原文件上去除重复的操作。