code: public static <T> List<T> unmodifiableList(Collection<? extends T> elements) {
          return Collections.unmodifiableList(new ArrayList<>(elements));
      }
docs: Creates a new unmodifiable {@link ArrayList} containing all elements from {@code elements}.
  
  @param elements the elements that the list should contain, must not be {@literal null}.
  @param <T> the element type
  @return a new {@link ArrayList} containing all elements from {@code elements}.