public BinaryMergeIterator( List<MutableObjectIterator<Entry>> iterators, List<Entry> reusableEntries, Comparator<Entry> comparator) throws IOException { checkArgument(iterators.size() == reusableEntries.size()); this.heap = new PartialOrderPriorityQueue<>( (o1, o2) -> comparator.compare(o1.getHead(), o2.getHead()), iterators.size()); for (int i = 0; i < iterators.size(); i++) { this.heap.add(new HeadStream<>(iterators.get(i), reusableEntries.get(i))); } }
/** * @param iterators * @param comparator * @throws IOException */ public MergeIterator(List<MutableObjectIterator<E>> iterators, TypeComparator<E> comparator) throws IOException { this.heap = new PartialOrderPriorityQueue<HeadStream<E>>(new HeadStreamComparator<E>(), iterators.size()); for (MutableObjectIterator<E> iterator : iterators) { this.heap.add(new HeadStream<E>(iterator, comparator.duplicate())); } }
/** * @param iterators * @param comparator * @throws IOException */ public MergeIterator(List<MutableObjectIterator<E>> iterators, TypeComparator<E> comparator) throws IOException { this.heap = new PartialOrderPriorityQueue<HeadStream<E>>(new HeadStreamComparator<E>(), iterators.size()); for (MutableObjectIterator<E> iterator : iterators) { this.heap.add(new HeadStream<E>(iterator, comparator.duplicate())); } }
/** * @param iterators * @param comparator * @throws IOException */ public MergeIterator(List<MutableObjectIterator<E>> iterators, TypeComparator<E> comparator) throws IOException { this.heap = new PartialOrderPriorityQueue<HeadStream<E>>(new HeadStreamComparator<E>(), iterators.size()); for (MutableObjectIterator<E> iterator : iterators) { this.heap.add(new HeadStream<E>(iterator, comparator.duplicate())); } }
/** * @param iterators * @param comparator * @throws IOException */ public MergeIterator(List<MutableObjectIterator<E>> iterators, TypeComparator<E> comparator) throws IOException { this.heap = new PartialOrderPriorityQueue<HeadStream<E>>(new HeadStreamComparator<E>(), iterators.size()); for (MutableObjectIterator<E> iterator : iterators) { this.heap.add(new HeadStream<E>(iterator, comparator.duplicate())); } }
ioManager, toBeMerged.get(i).getChannelID(), segments.get(i), toBeMerged.get(i).getPartitionIndexList()); heap.add(new PartitionIndexStream(readerDelegate, toBeMerged.get(i).getPartitionIndexList()));