跟踪过度比较方法中的排序进度

时间:2014-09-19 05:36:35

标签: java arrays sorting override

我正在排序一个(通常很大的)数组,如下所示:

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整数,那么我的选择是什么?我有没有?

1 个答案:

答案 0 :(得分:1)

你有多准确?您可以在新类中包含int(或AtomicInt甚至更好),将该类型的本地最终变量添加到sortDocumentArrayByTime()。每次比较都会增加前面提到的int并显示为进度currInt / n^2。不是很准确,但它只是一个进度条。您可以尝试除n^2以外的其他一些值,因为平均值应该低得多(最坏的情况可能会更大,具体取决于Arrays使用常量的确切实现会不同等等。)