Объект scala.jdk.StreamConverters
объект StreamConverters extends StreamExtensions
Члены типа
implicit class AnyArrayHasSeqParStream[A <: AnyRef] extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class ByteArrayHasSeqParStream extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class CharArrayHasSeqParStream extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class DoubleArrayHasSeqParStream extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class DoubleStreamHasToScala extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class FloatArrayHasSeqParStream extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class IntArrayHasSeqParStream extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class IntStreamHasToScala extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class IterableHasSeqStream[A] extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class IterableNonGenericHasParStream[A, C <: IterableOnce[_]] extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class LongArrayHasSeqParStream extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class LongStreamHasToScala extends AnyRef
- Определяющие классы
- StreamExtensions
implicit class MapHasParKeyValueStream[K, V, CC[X, Y] <: MapOps[X, Y, Map, _]] extends AnyRef
- Определяющие классы
- StreamExtensions
явное класс MapHasSeqKeyValueStream[K, V, CC[X, Y] <: MapOps[X, Y, Map, _]] extends AnyRef
- Определение классов
- StreamExtensions
явное класс ShortArrayHasSeqParStream extends AnyRef
- Определение классов
- StreamExtensions
явное класс StepperHasParStream[A] extends AnyRef
- Определение классов
- StreamExtensions
явное класс StepperHasSeqStream[A] extends AnyRef
- Определение классов
- StreamExtensions
явное класс StreamHasToScala[A] extends AnyRef
- Определение классов
- StreamExtensions
явное класс StringHasSeqParStream extends AnyRef
- Определение классов
- StreamExtensions
Члены-значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- returns
trueесли !(this == that), в противном случае false.
- Definition Classes
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode, за исключением упакованных числовых типов и null. Для числовых типов возвращает значение хеш-кода, соответствующее равенству значений: если два объекта типа значения сравниваются как true, то ## вернёт одно и то же значение хеш-кода для каждого из них. Для null возвращает хеш-код, где null.hashCode вызывает NullPointerException.
- returns
значение хеш-кода, соответствующее ==
- Definition Classes
- AnyRef → Any
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- returns
trueесли объект-приёмник эквивалентен аргументу;falseв противном случае.
- Definition Classes
- AnyRef → Any
final def asInstanceOf[T0]: T0
Приводит объект-приёмник к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, из-за стирания аргумента типа во время компиляции невозможно проверить, соответствуют ли элементы списка нужному типу.
- returns
объект-приёмник.
- Definition Classes
- Any
- Исключения
ClassCastException, если объект-приёмник не является экземпляром стирания типаT0.
def clone(): AnyRef
Создаёт копию объекта-приёмника.
По умолчанию реализация метода clone зависит от платформы.
- returns
копия объекта-приёмника.
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-приёмник (this).
Метод eq реализует отношение эквивалентности на не-нулевых экземплярах AnyRef, и имеет три дополнительных свойства:
-
Он согласован: для любых не-нулевых экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-нулевого экземпляра x типа AnyRef, вызовы x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно обеспечить согласованность их поведения с равенством ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковый хеш-код (o1.hashCode == o2.hashCode).
- returns
trueесли аргумент является ссылкой на объект-приёмник;falseв противном случае.
- Definition Classes
- AnyRef
def equals(arg0: AnyRef): Boolean
Метод равенства для ссылочных типов. По умолчанию делегирует вызов eq.
См. также equals в scala.Any.
- returns
trueесли объект-приёмник эквивалентен аргументу;falseв противном случае.
- Definition Classes
- AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-приёмника, когда больше нет ссылок на объект.
Детали того, когда и если вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- returns
объект класса, соответствующий типу объекта во время выполнения.
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- возвращает
значение хэш-кода для этого объекта.
final def isInstanceOf[T0]: Boolean
Проверка, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат теста зависит от семантики стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернет false, а выражение List(1).isInstanceOf[List[String]] вернет true. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, относятся ли элементы списка к указанному типу.
- возвращает
trueесли объект-получатель является экземпляром стираемого типаT0;falseв противном случае.
- Классы определений
- Any
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Классы определений
- AnyRef
final def notify(): Unit
Разбуживает один поток, ожидающий монитор объекта-получателя.
- Классы определений
- AnyRef
- Аннотации
- @native()
- Примечание
не указано в SLS как член AnyRef
final def notifyAll(): Unit
Разбуживает все потоки, ожидающие монитор объекта-получателя.
- Классы определений
- AnyRef
- Аннотации
- @native()
- Примечание
не указано в SLS как член AnyRef
final def synchronized[T0](arg0: => T0): T0
- Классы определений
- AnyRef
def toString(): String
Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, "@" и хэш-кода объекта в шестнадцатеричном формате.
- возвращает
строковое представление объекта.
- Классы определений
- AnyRef → Any
final def wait(): Unit
- Классы определений
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
- Классы определений
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Unit
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/jdk/StreamConverters$.html
Этот объект предоставляет расширяющие методы для создания потоков Java, которые работают со структурами данных Scala (последовательно или параллельно). Для получения дополнительной информации о потоках Java, обратитесь к документации (https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html).
При написании кода Java используйте явные методы преобразования, определенные в javaapi.StreamConverters вместо этого.
Методы
asJavaSeqStreamиasJavaParStreamпреобразуют коллекцию в поток Java:Примечание: использование параллельных потоков в Scala REPL приводит к тупику, см. https://github.com/scala/bug/issues/9076. В качестве обходного решения используйте
scala -Yrepl-class-based.Поток Java Stream предоставляет операции над последовательностью элементов. Потоки создаются из Spliterator, которые похожи на итераторы с дополнительной возможностью разделить часть своих элементов. Это разделение, если оно поддерживается Spliterator, используется для распараллеливания операций потока.
В коллекциях Scala есть метод
stepper, который возвращает scala.collection.Stepper для коллекции, которая, в свою очередь, может быть преобразована в Spliterator для создания потока Java.Метод
asJavaSeqStreamдоступен для любых коллекций Scala. МетодasJavaParStreamможет быть вызван только для коллекций, где возвращаемый тип методаstepperпомечен маркером scala.collection.Stepper.EfficientSplit. Этот маркер добавляется к степерам, которые поддерживают разделение, а значит, эффективную параллельную обработку.Доступны следующие расширяющие методы:
Тип коллекции
Методы расширения
IterableOnceasJavaSeqStreamIndexedSeq, Arrays,BitSet,Accumulator,HashMap,HashSet,Range,TreeMap,TreeSet,Vector, СтрокиasJavaParStreamMapasJavaSeqKeyStream,asJavaSeqValueStreamHashMap,TreeMapasJavaParKeyStream,asJavaParValueStreamStepperasJavaSeqStreamStepper with EfficientSplitasJavaParStreamСтроки
asJavaSeqStream,asJavaParStream,asJavaSeqCharStream,asJavaParCharStream,asJavaSeqCodePointStream,asJavaParCodePointStreamПотоки Java
toScala,asJavaPrimitiveStreamМетод
asJavaPrimitiveStreamпреобразуетStream[Int]вIntStream. Он является двойником методаboxed, определенного для примитивных потоков (например,IntStream.boxed- этоStream[Integer]).Расширяющие методы
toScalaдля потоков Java собирают результат цепочки обработки потока в структуру данных Scala, напримерstream.toScala(List),stream.toScala(Vector). Обратите внимание, что операции преобразования в потоках ленивы (также называются «промежуточными»), а терминальные операции, такие какforEach,countилиtoScala, вызывают вычисление.Собирание параллельного потока в коллекцию может выполняться параллельно. Это выгодно, если целевая коллекция поддерживает эффективное объединение сегментов, созданных параллельно. Для поддержки этого случая стандартная библиотека Scala предоставляет коллекцию Accumulator. Эта коллекция поддерживает эффективное параллельное построение, и она имеет специализированные подтипы для
Int,LongиDouble, чтобы примитивные потоки Java можно было собирать в коллекцию Scala без упаковывания элементов.