如何从列表中获得耗时最少的排序重复文件?

时间:2019-04-25 10:57:14

标签: hashmap duplicates md5

我正在使用哈希映射查找重复文件,然后将这些重复路径添加到列表中。

但是您可以看到列表中未添加所有重复项-第一个md5文件路径用于检查重复项,并且未添加。

问题是我想添加所有具有相同md5的文件。

如果3个具有相同md5的文件,我希望将其全部添加到列表中。

A-md5:5555555555555555

B-md5:5555555555555555

C-md5:5555555555555555

下面的算法A-md5将用于检查重复项,并将仅在列表中添加B-md5和C-md5,并跳过要添加的A-md5。

我只想添加一次A-md5。

第二个问题是在获得所有md5重复项之后,我也希望根据md5值对其进行排序。

void findMatchingFiles(ArrayList<String> filepaths)
{
    HashMap<String, String> hashmap = new HashMap<String, String>();

    for(String filepath : filepaths)
    {
        String md5 = getMd5OfFile(filepath);
        if(hashmap.containsKey(md5))
        {
            String original = hashmap.get(md5);
            String duplicate = filepath;

            // MD5DupPaths.add(original);
            MD5DupPaths.add(duplicate);
        }
        else
        {
            hashmap.put(md5, filepath
        }
    }
}

0 个答案:

没有答案