algorithm - 有没有一种方法可以生成一个单一的键来记住我们遇到的所有字符串

标签 algorithm hash key set

我正在处理数十万个文件,

我必须逐一处理这些文件, 为此,我需要记住已经处理过的文件。

我能想到的就是strong将每个文件的文件路径放在一个lo----ong数组中,然后每次检查是否重复。

但是,我认为应该有一些更好的方法,

我是否可以生成一个 KEY(这是一个数字)或其他东西,只记住所有已处理的文件?

最佳答案

您可以使用某种哈希函数(MD5、SHA1)。

伪代码:

for each F in filelist
    hash = md5(F name)

    if not hash in storage
        process file F
        store hash in storage to remember

参见 https://www.rfc-editor.org/rfc/rfc1321对于 MD5 的 C 实现

关于algorithm - 有没有一种方法可以生成一个单一的键来记住我们遇到的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141457/

相关文章:

java - 为什么 Collections.sort() 针对 LinkedList 进行了优化,而没有针对 ArrayList 进行优化?

algorithm - 如何为 HashSet/HashMap 实现哈希函数

security - MongoDB 使用什么散列函数来散列数据库用户密码?

c++ - 多键哈希表(unordered_map)

c# - 我的 Controller 创建中出现错误消息,定义此实体类型的键

string - 检查一个字符串是否是另外两个给定字符串的洗牌

javascript - 分组数字 JS 算法

mysql - 外键或空值

PHP - 从整数生成一个 8 字符的散列

C# rhash 生成不同于 rhash.exe 和 utorrent 的散列