Class StreamGroovyMethods

java.lang.Object
org.codehaus.groovy.runtime.StreamGroovyMethods

public class StreamGroovyMethods extends Object
  • Method Details

    • plus

      public static <T> Stream<T> plus​(Stream<? extends T> lhs, Collection<? extends T> rhs)
      Returns a lazily concatenated stream whose elements are all the elements of this stream followed by all the elements of the Collection object.
       import java.util.stream.Stream
       assert (Stream.of(1) + [2]).toList() == [1,2]
       assert (Stream.of(1) + []).toList() == [1]
       
      Since:
      4.0.0
    • plus

      public static <T> Stream<T> plus​(Stream<? extends T> lhs, Iterable<? extends T> rhs)
      Returns a lazily concatenated stream whose elements are all the elements of this stream followed by all the elements of the Iterable object.
       import java.util.stream.Stream
       assert (Stream.of(1) + [2]).toList() == [1,2]
       assert (Stream.of(1) + []).toList() == [1]
       
      Since:
      4.0.0
    • plus

      public static <T> Stream<T> plus​(Stream<? extends T> lhs, Stream<? extends T> rhs)
      Returns a lazily concatenated stream whose elements are all the elements of this stream followed by all the elements of the second stream.
       import java.util.stream.Stream
       assert (Stream.of(1) + Stream.<Integer>empty()).toList() == [1]
       assert (Stream.of(1) + Stream.of(2)).toList() == [1,2]
       assert (Stream.of(1) + [2].stream()).toList() == [1,2]
       
      Since:
      4.0.0
    • stream

      public static <T> Stream<T> stream​(T self)
      Returns a sequential Stream containing a single element.
       def item = 'string'
       assert item.stream().toList() == ['string']
       assert item.stream().findFirst().isPresent()
       
      Since:
      3.0.0
    • stream

      public static <T> Stream<T> stream​(T[] self)
      Returns a sequential Stream with the specified array as its source.
      Type Parameters:
      T - The type of the array elements
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Integer> stream​(int[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Long> stream​(long[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Double> stream​(double[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Character> stream​(char[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Byte> stream​(byte[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Short> stream​(short[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Boolean> stream​(boolean[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static Stream<Float> stream​(float[] self)
      Returns a sequential Stream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      2.5.0
    • stream

      public static <T> Stream<T> stream​(Enumeration<T> self)
      Returns a sequential Stream with the specified element(s) as its source.
       def tokens = new StringTokenizer('one two')
       assert tokens.stream().toList() == ['one', 'two']
       
      Since:
      3.0.0
    • stream

      public static <T> Stream<T> stream​(Iterable<T> self)
      Returns a sequential Stream with the specified element(s) as its source.
       class Items implements Iterable {
         Iterator<String> iterator() {
           ['one', 'two'].iterator()
         }
       }
       def items = new Items()
       assert items.stream().toList() == ['one', 'two']
       
      Since:
      3.0.0
    • stream

      public static <T> Stream<T> stream​(Iterator<T> self)
      Returns a sequential Stream with the specified element(s) as its source.
       [].iterator().stream().toList().isEmpty()
       ['one', 'two'].iterator().stream().toList() == ['one', 'two']
       
      Since:
      3.0.0
    • stream

      public static <T> Stream<T> stream​(Spliterator<T> self)
      Returns a sequential Stream with the specified element(s) as its source.
       assert [].spliterator().stream().toList().isEmpty()
       assert ['one', 'two'].spliterator().stream().toList() == ['one', 'two']
       
      Since:
      3.0.0
    • stream

      public static <T> Stream<T> stream​(NullObject self)
      Returns an empty sequential Stream.
       def item = null
       assert item.stream().toList() == []
       assert !item.stream().findFirst().isPresent()
       
      Since:
      3.0.0
    • stream

      public static <T> Stream<T> stream​(Optional<T> self)
      If a value is present in the Optional, returns a Stream with the value as its source or else an empty stream.
      Since:
      3.0.0
    • stream

      public static IntStream stream​(OptionalInt self)
      If a value is present in the OptionalInt, returns an IntStream with the value as its source or else an empty stream.
      Since:
      3.0.0
    • stream

      public static LongStream stream​(OptionalLong self)
      If a value is present in the OptionalLong, returns a LongStream with the value as its source or else an empty stream.
      Since:
      3.0.0
    • stream

      public static DoubleStream stream​(OptionalDouble self)
      If a value is present in the OptionalDouble, returns a DoubleStream with the value as its source or else an empty stream.
      Since:
      3.0.0
    • intStream

      public static IntStream intStream​(int[] self)
      Returns a sequential IntStream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      3.0.8
    • longStream

      public static LongStream longStream​(long[] self)
      Returns a sequential LongStream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      3.0.8
    • doubleStream

      public static DoubleStream doubleStream​(double[] self)
      Returns a sequential DoubleStream with the specified array as its source.
      Parameters:
      self - The array, assumed to be unmodified during use
      Returns:
      a Stream for the array
      Since:
      3.0.8
    • toArray

      public static <T> T[] toArray​(Stream<? extends T> self, Class<T> type)
      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[])
       
      Parameters:
      self - the stream
      type - the array element type
      Since:
      3.0.4
    • toList

      public static <T> List<T> toList​(Stream<T> self)
      Accumulates the elements of stream into a new List.
      Type Parameters:
      T - the type of element
      Parameters:
      self - the stream
      Returns:
      a new java.util.List instance
      Since:
      2.5.0
    • toList

      public static <T> List<T> toList​(BaseStream<T,​? extends BaseStream> self)
      Accumulates the elements of stream into a new List.
      Type Parameters:
      T - the type of element
      Parameters:
      self - the java.util.stream.BaseStream
      Returns:
      a new java.util.List instance
      Since:
      2.5.0
    • toSet

      public static <T> Set<T> toSet​(Stream<T> self)
      Accumulates the elements of stream into a new Set.
      Type Parameters:
      T - the type of element
      Parameters:
      self - the stream
      Returns:
      a new java.util.Set instance
      Since:
      2.5.0
    • toSet

      public static <T> Set<T> toSet​(BaseStream<T,​? extends BaseStream> self)
      Accumulates the elements of stream into a new Set.
      Type Parameters:
      T - the type of element
      Parameters:
      self - the java.util.stream.BaseStream
      Returns:
      a new java.util.Set instance
      Since:
      2.5.0