gpt4 book ai didi

java - 更有效地对文件对进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:22 26 4
gpt4 key购买 nike

我有一个包含成对文件的文件夹。对共享文件名但具有不同的扩展名(在本例中,它们是 .txt 和 .png 对)。我希望将它们成对存储到 HashMap< File, File > 中。以下是我为找到这些对所做的事情:

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 个文件需要排序时,这会花费很多时间,并且我希望找到一种更有效的方法来完成此操作。我还可以通过什么其他方式对这些文件进行排序?

非常感谢!

最佳答案

我不会将它们放入像 HashMap 这样的无序 Map 中,而是将元素放入 TreeMap 中。因为它对键进行排序。

根据链接的 Javadoc,

A Red-Black tree based NavigableMap implementation. The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending on which constructor is used.

关于java - 更有效地对文件对进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com