code: @SuppressWarnings("unchecked")
      public List<T> toList() {
          return new ArrayList<>((Collection<T>) new ArrayCollection(toArray(Object[]::new)));
      }
docs: Returns a {@link List} containing the elements of this stream. The
  returned {@code List} is guaranteed to be mutable, but there are no
  guarantees on the type, serializability, or thread-safety; if more
  control over the returned {@code List} is required, use
  {@link #toCollection(Supplier)}.
  
  <p>
  This is a terminal operation.
  
  @return a {@code List} containing the elements of this stream
  @see Collectors#toList()
  @see #toImmutableList()