Class NonReusingKeyGroupedIterator<E>

  • All Implemented Interfaces:
    KeyGroupedIterator<E>

    public final class NonReusingKeyGroupedIterator<E>
    extends Object
    implements KeyGroupedIterator<E>
    The key grouped iterator returns a key and all values that share the same key.
    • Constructor Detail

      • NonReusingKeyGroupedIterator

        public NonReusingKeyGroupedIterator​(MutableObjectIterator<E> iterator,
                                            TypeComparator<E> comparator)
        Initializes the KeyGroupedIterator. It requires an iterator which returns its result sorted by the key fields.
        Parameters:
        iterator - An iterator over records, which are sorted by the key fields, in any order.
        comparator - The comparator for the data type iterated over.
    • Method Detail

      • nextKey

        public boolean nextKey()
                        throws IOException
        Moves the iterator to the next key. This method may skip any values that have not yet been returned by the iterator created by the getValues() method. Hence, if called multiple times it "removes" key groups.
        Specified by:
        nextKey in interface KeyGroupedIterator<E>
        Returns:
        true, if the input iterator has an other group of records with the same key.
        Throws:
        IOException
      • getComparatorWithCurrentReference

        public TypeComparator<E> getComparatorWithCurrentReference()
      • getValues

        public NonReusingKeyGroupedIterator.ValuesIterator getValues()
        Returns an iterator over all values that belong to the current key. The iterator is initially null (before the first call to nextKey() and after all keys are consumed. In general, this method returns always a non-null value, if a previous call to nextKey() return true.
        Specified by:
        getValues in interface KeyGroupedIterator<E>
        Returns:
        Iterator over all values that belong to the current key.