Kolekcje Scala - Stream

Scala Stream to specjalna lista z funkcją leniwej oceny. W strumieniu scala elementy są oceniane tylko wtedy, gdy są potrzebne. Stream obsługuje leniwe obliczenia i zna wydajność.

Deklarowanie zmiennych strumienia

Poniżej przedstawiono składnię deklarowania zmiennej Stream.

Składnia

val stream = 1 #:: 2 #:: 3 #:: Stream.empty

Tutaj strumień jest zadeklarowany jako strumień liczb. Tutaj 1 to początek strumienia, 2, 3 to koniec strumienia. Stream.empty oznacza koniec strumienia. Wartości można pobrać za pomocą poleceń take, takich jak:

Komenda

stream.take(2)

Przetwarzanie strumienia

Poniżej znajduje się przykładowy program pokazujący, jak tworzyć, inicjować i przetwarzać Stream -

Przykład

import scala.collection.immutable.Stream
object Demo {
   def main(args: Array[String]) = {
      val stream = 1 #:: 2 #:: 3 #:: Stream.empty
      // print stream
      println(stream)
      // Print first two elements	
      stream.take(2).print
      println()
      // Create an empty stream
      val stream1: Stream[Int] = Stream.empty[Int]
      // Print element
      println(s"Stream: $stream1")
   }
}

Zapisz powyższy program w formacie Demo.scala. Poniższe polecenia służą do kompilowania i wykonywania tego programu.

Komenda

\>scalac Demo.scala
\>scala Demo

Wynik

Stream(1, <not computed>)
1, 2
Stream: Stream()