【发布时间】:2019-11-13 03:18:00
【问题描述】:
我想创建一个 Java 应用程序来识别重复项。到目前为止,我只能通过名称找到重复项,但我还需要大小、文件类型,也许还有内容。到目前为止,这是我的代码,使用 HashMap:
public static void find(Map<String, List<String>> lists, File dir) {
for (File f : dir.listFiles()) {
if (f.isDirectory()) {
find(lists, f);
} else {
String hash = f.getName() + f.length();
List<String> list = lists.get(hash);
if (list == null) {
list = new LinkedList<String>();
lists.put(hash, list);
}
list.add(f.getAbsolutePath());
}
}
}
【问题讨论】:
-
也许this question 会有所帮助
-
您是否尝试过引入一些 FileHeader 类,在其中使用所有对您而言重要的元素?基于此类输出一些校验和 - sha 或 md5 并将其用作 Collectors.grouping() 中的键?
标签: java hashmap duplicates size