code: public static <T> Iterator<T> join(Collection<Iterable<T>> iterables) {
          Queue<Iterator<T>> iters = 
              new ArrayDeque<Iterator<T>>(iterables.size());
          for (Iterable<T> i : iterables)
              iters.add(i.iterator());
          return new CombinedIterator<T>(iters);
      }
docs: Joins the iterators of all the provided iterables as one unified
  iterator.