code: public static <T> List<T> flip(final List<T> src, List<T> dest, final int start, final int length)
  	{
  		if (dest == null)
  			dest = new ArrayList<T>();
  		else if (!dest.isEmpty())
  			dest.clear();
  
  		final int last = start + length - 1;
  		for (int i = last; i >= start; i--)
  		{
  			dest.add(src.get(i));
  		}
  
  		return dest;
  	}
docs: Reverses a list
  
  @param <T>
  @param src
  @param dest
  @param start
  @param length
  
  @return