Java基础 小练习——统计各种文件的数量

发布时间 2023-10-22 15:00:19作者: 嘎嘎鸭2
public static void main(String[] args) {
File f = new File("E:\\Java基础资料\\哈哈");
HashMap<String, Integer> count = getCount(f);
StringBuilder sb = new StringBuilder();
for (Map.Entry<String, Integer> entry : count.entrySet()) {
sb.append(entry.getKey()).append(":").append(entry.getValue()).append("个\n");
}
System.out.println(sb);
}

public static HashMap<String, Integer> getCount(File f) {
HashMap<String, Integer> hm = new HashMap<>();
for (File file : f.listFiles()) {
if (file.isFile()) {
String[] strings = file.getName().split("\\.");
if(hm.containsKey(strings[strings.length - 1]))
hm.put(strings[strings.length - 1], hm.get(strings[strings.length - 1]) + 1);
else
hm.put(strings[strings.length - 1], 1);
} else {
HashMap<String, Integer> hashMap = getCount(file);
Set<Map.Entry<String, Integer>> entries = hashMap.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
if(hm.containsKey(entry.getKey()))
hm.put(entry.getKey(), hm.get(entry.getKey()) + entry.getValue());
else
hm.put(entry.getKey(), entry.getValue());
}
}
}
return hm;
}