1. 按文件名排序,中文名按拼音首字母,即A-Z:
/**
* 文件按文件名排序(从A到Z)
*/
private static class CompratorByFileName implements Comparator<File>{
@Override
public int compare(File lhs,
File rhs) {
Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);
return cmp.compare(lhs.name , rhs.name);
}
@Override
public boolean equals(Object o) {
return true;
}
}
2.按文件修改时间排序,从旧到新:
/**
* 按 文件修改时间排序(从旧到新)
*
*/
private static class CompratorByFileTime implements
Comparator<File> {
@Override
public int compare(File file1,
File file2) {
int diff = 0;
try {
diff = file1._rev.compareTo(file2._rev);
} catch (NullPointerException e) {
diff = 1;
}
if (diff > 0) {
return 1;
} else if (diff == 0) {
return 0;
} else {
return -1;
}
}
@Override
public boolean equals(Object o) {
return true;
}
}
3.按文件大小排序,从小到大:
/**
* 按文件大小排序(从小到大)
*/
private static class CompratorByFileSize implements Comparator<File>{
@Override
public int compare(File lhs,
File rhs) {
if (lhs._size > rhs._size) {
return 1;
} else if (lhs._size == rhs._size) {
return 0;
} else {
return -1;
}
}
@Override
public boolean equals(Object o) {
return true;
}
}
最后对文件列表fileList :
Collections.sort(fileList, new CompratorByFilexxxx());
列表的倒序:
Collections.reverse(fileList);