我正在尝试为我的播客应用程序排序一个大型对象的arraylist。这是Wear OS应用程序,因此大多数设备比普通的现代Android设备具有更少的内存和处理速度。在播客数量较少的情况下,以正确的顺序加载剧集并不是很明显,但有数百集的剧集最多需要10秒才能进行排序。我怎样才能加快速度呢?
我想在我的sqlite数据库中对剧集进行排序并以正确的顺序保存它们,但所有剧集都存储在自己的表中。我猜我应该将日期保存为毫秒而不是字符串。我想最初会有一种更聪明的方式存储它们,但现在它们只是按照它们在所有用户数据库中找到的顺序。
我该怎么做才能加快这个过程?我应该在后台做这个吗?
public static Comparator<Episode> DateComparator = new Comparator<Episode>() {
public int compare(Episode episode1, Episode episode2) {
if (episode1 == null || episode1.getDate() == null) {
if (episode2 == null || episode2.getDate() == null) {
return 0;
}
return -1;
} else if (episode2 == null || episode2.getDate() == null) {
return 1;
}
Date date1 = episode1.getDate();
Date date2 = episode2.getDate();
return date2.compareTo(date1);
}
};
public Date getDate() {
if(this.date != null) {
try {
return fdf.parse(this.date);
} catch (ParseException ex) {
ex.printStackTrace();
}
}
return null;
}
private FastDateFormat fdf = FastDateFormat.getInstance("EEE MMM dd kk:mm:ss zzz yyyy");
答案 0 :(得分:2)
避免重复解析日期/时间字符串是这一系列简单改进的一般主题: