Class ReusingKeyGroupedIterator<E>

  • All Implemented Interfaces:
    KeyGroupedIterator<E>

    public final class ReusingKeyGroupedIterator<E>
    extends Object
    implements KeyGroupedIterator<E>
    The KeyValueIterator returns a key and all values that belong to the key (share the same key).
    • Constructor Detail

      • ReusingKeyGroupedIterator

        public ReusingKeyGroupedIterator​(MutableObjectIterator<E> iterator,
                                         TypeSerializer<E> serializer,
                                         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.
        serializer - The serializer for the data type iterated over.
        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" pairs.
        Specified by:
        nextKey in interface KeyGroupedIterator<E>
        Returns:
        true if the input iterator has an other group of key-value pairs that share the same key.
        Throws:
        IOException
      • getComparatorWithCurrentReference

        public TypeComparator<E> getComparatorWithCurrentReference()
      • getValues

        public ReusingKeyGroupedIterator.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.