code: private static final <E> void moveAll(ArrayList<E> source, ArrayList<E> target) {
  		target.ensureCapacity(target.size() + source.size());
  		for (int i = source.size() - 1; i >= 0; i--) {
  			target.add(source.remove(i));
  		}
  	}
docs: Utility method that moves elements. It avoids copying the data into a dedicated array first, as
  the {@link ArrayList#addAll(java.util.Collection)} method does.
  
  @param <E>
  @param source
  @param target