Я нахожу дубликаты файлов, используя карту Hash, затем добавляю эти дубликаты путей в список.
Но, как вы можете видеть, все дубликаты не добавляются в список - первый путь к файлу 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
}
}
}