Arrays.sort( files, new Comparator<File>() {
public int compare( File a, File b ) {
// do your comparison here returning -1 if a is before b, 0 if same, 1 if a is after b
}
} );
Вы можете определить кучу разных Comparator
классов для различных сравнений, например:
public class FileNameComparator implements Comparator<File> {
public int compare( File a, File b ) {
return a.getName().compareTo( b.getName() );
}
}
public class FileSizeComparator implements Comparator<File> {
public int compare( File a, File b ) {
int aSize = a.getSize();
int bSize = b.getSize();
if ( aSize == bSize ) {
return 0;
}
else {
return Integer.compare(aSize, bSize);
}
}
}
...
Тогда вы просто поменяете их местами:
Arrays.sort( files, new FileNameComparator() );
или
Arrays.sort( files, new FileSizeComparator() );