我有一对文件夹。对共享文件名,但具有不同的扩展名(在这种情况下,它们是.txt和.png对)。我正在寻找将它们存储到HashMap <文件,文件>成对。这是我做过什么,找到对的:更有效的文件对排序
LinkedList<File> fileList = new LinkedList<File>(Arrays.asList(fileArray));
LinkedList<File> alreadyCompared = new LinkedList<File>();
HashMap<File, File> filePairs = new HashMap<File, File>();
for (Iterator<File> itr1 = fileList.iterator(); itr1.hasNext();) {
File comparator = itr1.next();
if (!alreadyCompared.contains(comparator)) {
String stringComparator = comparator.getName().split("\\.")[0];
alreadyCompared.add(comparator);
for (Iterator<File> itr2 = fileList.iterator(); itr2.hasNext();) {
File compared = itr2.next();
if (!alreadyCompared.contains(compared)) {
String stringCompared = compared.getName().split("\\.")[0];
if (stringComparator.equals(stringCompared)) {
if (comparator.getName().endsWith("txt")) {
filePairs.put(comparator, compared);
} else {
filePairs.put(compared, comparator);
}
}
}
}
}
}
return filePairs;
现在,这需要大量的时间当我有超过1000个文件进行排序,我想找到做的更有效的方法它。我还可以用其他方式对这些文件进行排序
非常感谢!
我有点迷路。问题是只用相同的名称对文件进行分组(忽略扩展名)? – 2014-10-20 13:59:47
只是猜测,如果你认为你在txt中的文件是在PNG中,为什么要比较所有这些文件而不直接检索png? – KBorja 2014-10-20 14:01:27
为什么要存储文件?为什么不存储文件的名称,然后根据需要获取它们? – brso05 2014-10-20 14:05:05