Java 对文件列表进行排序

Java 对文件列表进行排序,java,file,for-loop,arraylist,directory,Java,File,For Loop,Arraylist,Directory,如何在Java中列出多个目录的文件 这就是我尝试过的: ArrayList<File> files = new ArrayList<File>(); for(int x = 0; x < directorys.length; x++) { if(directorys[x].isDirectory()) { files.addAll(Arrays.asList(directorys[x].listFiles(filter))); }

如何在Java中列出多个目录的文件

这就是我尝试过的:

ArrayList<File> files = new ArrayList<File>();
for(int x = 0; x < directorys.length; x++) {
    if(directorys[x].isDirectory()) {
        files.addAll(Arrays.asList(directorys[x].listFiles(filter)));
    } 
}
ArrayList files=new ArrayList();
for(int x=0;x
这在某种程度上是可行的,但问题是,它不能将文件完全按字母顺序排列。
比这样的东西好:(第一个文件夹)1,3,5,(第二个文件夹)2,4,6。但我希望它是这样的:1、2、3、4、5、6。
所以我想,它的作用是,它将每个文件夹中的所有文件按正确顺序排列,但不是将所有文件放在一起。

如何实现这一点?

您可以使用比较器进行排序:

files.sort((a,b)-> a.getName().compareTo(b.getName()));

您可以使用比较器进行排序:

files.sort((a,b)-> a.getName().compareTo(b.getName()));

您可以在循环之后对文件列表进行排序,如下所示

files.sort(Comparator.comparing(File::getName));

您可以在循环之后对文件列表进行排序,如下所示

files.sort(Comparator.comparing(File::getName));