reverted sort method
This commit is contained in:
parent
3433dd0f54
commit
6f61ab64a7
@ -370,19 +370,18 @@ public class TenantRepo {
|
|||||||
// Collections.reverse(result);
|
// Collections.reverse(result);
|
||||||
// result = result.subList(offset, requiredSize);
|
// result = result.subList(offset, requiredSize);
|
||||||
// IMPLEMENTATION THAT IS BASED ON TREE SET (For offset + query.getPageSize() << totalSize)
|
// IMPLEMENTATION THAT IS BASED ON TREE SET (For offset + query.getPageSize() << totalSize)
|
||||||
// var requiredSize = Math.min(offset + query.getPageSize(), totalSize);
|
|
||||||
// TreeSet<SortableEntityData> topNSet = new TreeSet<>(comparator);
|
|
||||||
// for (SortableEntityData sp : data) {
|
|
||||||
// topNSet.add(sp);
|
|
||||||
// if (topNSet.size() > requiredSize) {
|
|
||||||
// topNSet.pollLast();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// var result = topNSet.stream().skip(offset).limit(query.getPageSize()).collect(Collectors.toList());
|
|
||||||
// IMPLEMENTATION THAT IS BASED ON TIM SORT (For offset + query.getPageSize() > totalSize / 2)
|
|
||||||
var requiredSize = Math.min(offset + query.getPageSize(), totalSize);
|
var requiredSize = Math.min(offset + query.getPageSize(), totalSize);
|
||||||
data.sort(comparator);
|
TreeSet<SortableEntityData> topNSet = new TreeSet<>(comparator);
|
||||||
var result = data.subList(offset, requiredSize);
|
for (SortableEntityData sp : data) {
|
||||||
|
topNSet.add(sp);
|
||||||
|
if (topNSet.size() > requiredSize) {
|
||||||
|
topNSet.pollLast();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var result = topNSet.stream().skip(offset).limit(query.getPageSize()).collect(Collectors.toList());
|
||||||
|
// IMPLEMENTATION THAT IS BASED ON TIM SORT (For offset + query.getPageSize() > totalSize / 2)
|
||||||
|
// data.sort(comparator);
|
||||||
|
// var result = data.subList(offset, endIndex);
|
||||||
log.trace("EDQ Sorted in {}", TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTs));
|
log.trace("EDQ Sorted in {}", TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTs));
|
||||||
return new PageData<>(toQueryResult(result, query, ctx), totalPages, totalSize, totalSize > requiredSize);
|
return new PageData<>(toQueryResult(result, query, ctx), totalPages, totalSize, totalSize > requiredSize);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user