我正在排序一个(通常很大的)数组,如下所示:
private static void sortDocumentArrayByTime(Document[] sortedDocuments) {
Arrays.sort(sortedDocuments, new Comparator<Document>() {
@Override
public int compare(Document o1, Document o2) {
return Long.compare(o1.getCreationTime(), o2.getCreationTime());
}
});
}
我想跟踪排序的进度并更新我已经构建的状态栏,但是我不太确定如何更新计数器。显然,我不能引用超出over-over方法范围的sortCount
整数,那么我的选择是什么?我有没有?
答案 0 :(得分:1)
你有多准确?您可以在新类中包含int
(或AtomicInt
甚至更好),将该类型的本地最终变量添加到sortDocumentArrayByTime()
。每次比较都会增加前面提到的int
并显示为进度currInt / n^2
。不是很准确,但它只是一个进度条。您可以尝试除n^2
以外的其他一些值,因为平均值应该低得多(最坏的情况可能会更大,具体取决于Arrays使用常量的确切实现会不同等等。)