code: public static <E> List<E> concat(List<? extends E> first, List<? extends E> second) {
      return new ConcatenatedListView<E>(first, second);
    }
docs: Returns an unmodifiable view of the concatenation of two lists.
  This view will act like a {@link List} which has all of the items of
  {@code first} followed by all of the items in {@code second}.
  
  This has been requested as a Guava feature but never implemented:
  https://github.com/google/guava/issues/1029
  
  If you don't need {@link List#size()} or the equality/hashcode guarantees, just use
  {@link com.google.common.collect.Iterables#concat(Iterable[])}