File [] templatesList = templateFileList.toArray(new File[0] );
Arrays.sort(templatesList,ExtensionFileComparator.EXTENSION_INSENSITIVE_REVERSE);
templatesList contains files like
- app.vm
- app.1.ivm
- app.2.ivm
- mart.ivm
- mart.vm
First reverse sort based on last extension, then sort based on basename, then sort numbers. After sorting, expected output is
- app.vm
- mart.vm
- app.1.ivm
- app.2.ivm
- mart.ivm
My Code:
File [] templatesList = templateFileList.toArray(new File[0] );
List <File> tempList = Arrays.asList(templatesList);
tempList.stream().sorted(ExtensionFileComparator.EXTENSION_INSENSITIVE_REVERSE.
thenComparing(NameFileComparator.NAME_INSENSITIVE_COMPARATOR));
List <File> templateFileList1 = new ArrayList(Arrays.asList(templatesList));
Collections.sort(templateFileList1, new Comparator <File>() {
@Override
public int compare(File f1, File f2) {
return Integer.parseInt(FilenameUtils.getExtension(FilenameUtils.getBaseName(f1.toString())))-
Integer.parseInt(FilenameUtils.getExtension(FilenameUtils.getBaseName(f2.toString())));
}
});