Class ParallelIterator<Type1,Type2>

java.lang.Object
com.saperion.util.ParallelIterator<Type1,Type2>
All Implemented Interfaces:
Iterator<Pair<Type1,Type2>>

public class ParallelIterator<Type1,Type2> extends Object implements Iterator<Pair<Type1,Type2>>
An iterator that iterates over two iterators simultaneously. Expects the ranges of both iterators to have the same length.
  • Constructor Details

    • ParallelIterator

      public ParallelIterator(Iterator<Type1> iterator1, Iterator<Type2> iterator2)
      Creates a ParallelIterator that iterates over the given iterators simultaneously.
      Parameters:
      iterator1 - the first iterator to iterate over. The return values of its Iterator.next() method will be first in the result pair of the next() method.
      iterator2 - the second iterator to iterate over. The return values of its Iterator.next() method will be second in the result pair of the next() method.
  • Method Details

    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface Iterator<Type1>
    • next

      public Pair<Type1,Type2> next()
      The result will hold the result of the Iterator.next() call of the first iterator first, then the one of the second iterator.
      Specified by:
      next in interface Iterator<Type1>
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<Type1>
    • create

      public static <Type1, Type2> ParallelIterator<Type1,Type2> create(Iterator<Type1> iterator1, Iterator<Type2> iterator2)
      Convenience method that wraps the constructor call and lets the compiler determine the generic types.
    • parallel

      public static <Type1, Type2> Iterable<Pair<Type1,Type2>> parallel(Iterable<Type1> iterable1, Iterable<Type2> iterable2)