@SuppressWarnings("unchecked")
    public List<T> toList() {
        return new ArrayList<>((Collection<T>) new ArrayCollection(toArray(Object[]::new)));
    }
@ SuppressWarnings ( "unchecked" ) public List < T > toList ( ) { return new ArrayList < > ( ( Collection < T > ) new ArrayCollection ( toArray ( Object [ ] :: new ) ) ) ; }
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()