java - 按大小排序文件列表花费了太多时间
问题描述
文件夹的排序列表运行良好,但需要花费太多时间并且使手机冻结,直到方法完成。这是我用来对文件列表进行排序的方法
public static void sortFromLargeToSmall(List<Folders> foldersList, SDCardListViewAdapter sdCardListViewAdapter) {
List<File> files = new ArrayList<>();
for (Folders folder: foldersList)
files.add(folder.getFile());
Comparator<File> sizeFileComparator = SizeFileComparator.SIZE_SUMDIR_REVERSE;
Collections.sort(files, sizeFileComparator);
sdCardListViewAdapter.clear();
for(File file: files)
if(file.isDirectory())
sdCardListViewAdapter.add(new Folders(R.drawable.ic_folders, file.getName(), file));
else
sdCardListViewAdapter.add(new Folders(R.drawable.ic_file, file.getName(), file));
}
这是文件夹对象构造函数
public Folders(int imageView, String folderName, File file) {
this.folderIcon = imageView;
this.folderName = folderName;
this.file = file;
this.isSelected = false;
foldersPath = new ArrayList<>();
foldersName = new ArrayList<>();
}
有没有办法让方法非常快速并且不会让手机死机
解决方案
推荐阅读
- vuetify.js - 自定义 Vuetify 主题不适用于 Laravel Mix
- java - Hibernate 4.3 通过嵌入 ID 的多个列表进行级联合并
- php - 正则表达式:Laravel 中的模式验证
- c# - InputSimulator 在重新激活 WPF 窗口后将密钥发送到错误的进程
- docker - 如何解决 Manjaro 上的 Docker 错误代码 139?
- sql-server - 如何在 SQL Server 的 where 子句中使用别名
- javascript - 如何使用代理在电子 webview 中加载 JQuery
- linux - 将 .BSS 与堆访问区分开来
- go - 在 go worker/event 系统中,worker 是否应该访问相同的结构(通过指针)来完成工作?
- javascript - react js 和 redux 在每条路由之前发送一个 api 调用