我遇到了一个算法问题。你们,伙计们,帮助我吗?
我有一个巨大的文件,因此无法立即加载。存在重复数据(通用数据,可能是字符串)。我需要删除重复项。
答案 0 :(得分:2)
一个简单但缓慢的解决方案是在HashSet中读取1st Gigabite。读取文件的顺序其余部分并删除文件中的双重字符串。比在内存(hashset)中读取第二个gigabite并再次删除文件中的双重文件,然后再次... 它很容易编程,如果你只想做一次它就足够了。
答案 1 :(得分:1)
您可以计算每条记录的哈希值,并将其保存在Map>
读取构建地图的文件,如果您发现地图中存在HashKey,您会寻找位置进行双重检查(如果不相等则将位置添加到映射集)
答案 2 :(得分:0)
第二种解决方案:
答案 3 :(得分:0)
取决于输入在文件中的放置方式;如果每一行都可以用行数据表示;
另一种方法是使用数据库服务器,将数据插入具有唯一值列的数据库表,从文件读取并插入数据库。最后,数据库将包含所有唯一的行/行。