我正在使用哈希映射查找重复文件,然后将这些重复路径添加到列表中。
但是您可以看到列表中未添加所有重复项-第一个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
}
}
}