| Return type | Name and parameters |
|---|---|
Object[]
|
toArray(Class type)
Returns an array containing the elements of the stream. |
List
|
toList()
Accumulates the elements of stream into a new List. |
Set
|
toSet()
Accumulates the elements of stream into a new Set. |
Returns an array containing the elements of the stream.
import static groovy.test.GroovyAssert.shouldFail
assert Arrays.equals([].stream().toArray(Object), new Object[0])
assert Arrays.equals([].stream().toArray(String), new String[0])
assert Arrays.equals([].stream().toArray(String[]), new String[0][])
assert Arrays.equals(['x'].stream().toArray(Object), ['x'].toArray())
assert Arrays.equals(['x'].stream().toArray(String), ['x'] as String[])
assert Arrays.deepEquals([['x'] as String[]].stream().toArray(String[]), [['x'] as String[]] as String[][])
assert Arrays.equals(['x'].stream().toArray(CharSequence), ['x'] as CharSequence[])
shouldFail(ArrayStoreException) {
['x'].stream().toArray(Thread)
}
shouldFail(IllegalArgumentException) {
['x'].stream().toArray((Class) null)
}
// Stream#toArray(IntFunction) should still be used for closure literal:
assert Arrays.equals(['x'].stream().toArray { n -> new String[n] }, ['x'] as String[])
// Stream#toArray(IntFunction) should still be used for method reference:
assert Arrays.equals(['x'].stream().toArray(String[]::new), ['x'] as String[])
type - the array element typeAccumulates the elements of stream into a new List.
java.util.List instanceAccumulates the elements of stream into a new Set.
java.util.Set instance