code: public void addAll(final Iterator<? extends T> elements, final LongIterator values, final boolean requiresValue2CountMap) throws IOException {
  		if (pl != null) {
  			pl.expectedUpdates = -1;
  			pl.start("Adding elements...");
  		}
  		final long[] triple = new long[3];
  		while(elements.hasNext()) {
  			Hashes.spooky4(transform.toBitVector(elements.next()), seed, triple);
  			add(triple, values != null ? values.nextLong() : filteredSize);
  			if (pl != null) pl.lightUpdate();
  		}
  		if (values != null && values.hasNext()) throw new IllegalStateException("The iterator on values contains more entries than the iterator on keys");
  		if (pl != null) pl.done();
  	}
docs: Adds the elements returned by an iterator to this store, associating them with specified values,
  possibly building the associated value frequency map.
  
  @param elements an iterator returning elements.
  @param values an iterator on values parallel to {@code elements}.
  @param requiresValue2CountMap whether to build the value frequency map (associating with each value its frequency).