你是说文件名相同,扩展名不同吗
// 将重复的文件名添加到ArrayList
// Map的key是文件名(不含扩展名),value是重复文件名的List
Map<String, ArrayList<String>> map = new HashMap<String,ArrayList<String>>();
File folder = new File("d:/test/");
if (folder.exists() && folder.isDirectory()) {
File[] files = folder.listFiles();
for (File f : files) {
// 得到文件名(不含扩展名)
String name = f.getName().substring(f.getName().lastIndexOf("\\.")+1);
if (map.containsKey(name)) {
ArrayList<String> list = map.get(name);
if (list == null) {
list = new ArrayList<String>();
map.put(name, list);
}
list.add(f.getName());
}
else {
ArrayList<String> list = new ArrayList<String>();
list.add(f.getName());
map.put(name, list);
}
}
}
// 输出重复的文件名
Iterator<String> itKeys = map.keySet().iterator();
while (itKeys.hasNext()) {
ArrayList<String> filenames = map.get(itKeys.next());
if (filenames != null && filenames.size() > 1) {
for (String filename : filenames) {
System.out.println(filename);
}
}
}