Трейт scala.collection.parallel.ParIterable
Компаньон объект ParIterable
trait ParIterable[+T] extends GenIterable[T] with GenericParTemplate[T, ParIterable] with ParIterableLike[T, ParIterable[T], scala.Iterable[T]]
Тип членов
тип SSCTask[R, Tp] = StrictSplitterCheckTask[R, Tp]
- Определяющие классы
- ParIterableLike
тракт Accessor[R, Tp] extends StrictSplitterCheckTask[R, Tp]
Стандартная задача доступа, которая итерирует элементы коллекции.
- R
тип результата этого метода (
Rдля результата).- Tp
тип представления текущей задачи.
- Атрибуты
- protected
- Определяющие классы
- ParIterableLike
класс Aggregate[S] extends Accessor[S, Aggregate[S]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
тракт BuilderOps[Elem, To] extends AnyRef
- Определяющие классы
- ParIterableLike
класс Collect[S, That] extends Transformer[Combiner[S, That], Collect[S, That]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
абстрактный класс Composite[FR, SR, R, First <: StrictSplitterCheckTask[FR, _], Second <: StrictSplitterCheckTask[SR, _]] extends NonDivisibleTask[R, Composite[FR, SR, R, First, Second]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс Copy[U >: T, That] extends Transformer[Combiner[U, That], Copy[U, That]]
- Атрибуты
- protected
- Определяющие классы
- ParIterableLike
класс CopyToArray[U >: T, This >: Repr] extends Accessor[Unit, CopyToArray[U, This]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс Count extends Accessor[Int, Count]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс CreateScanTree[U >: T] extends Transformer[ScanTree[U], CreateScanTree[U]]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс Drop[U >: T, This >: Repr] extends Transformer[Combiner[U, This], Drop[U, This]]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс Exists extends Accessor[Boolean, Exists]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс Filter[U >: T, This >: Repr] extends Transformer[Combiner[U, This], Filter[U, This]]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс FilterNot[U >: T, This >: Repr] extends Transformer[Combiner[U, This], FilterNot[U, This]]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс Find[U >: T] extends Accessor[Option[U], Find[U]]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс FlatMap[S, That] extends Transformer[Combiner[S, That], FlatMap[S, That]]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс Fold[U >: T] extends Accessor[U, Fold[U]]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс Forall extends Accessor[Boolean, Forall]
- Атрибуты
- protected[this]
- Классы-определения
- ParIterableLike
класс Foreach[S] extends Accessor[Unit, Foreach[S]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс FromScanTree[U >: T, That] extends StrictSplitterCheckTask[Combiner[U, That], FromScanTree[U, That]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс GroupBy[K, U >: T] extends Transformer[HashMapCombiner[K, U], GroupBy[K, U]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс Map[S, That] extends Transformer[Combiner[S, That], Map[S, That]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс Max[U >: T] extends Accessor[Option[U], Max[U]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс Min[U >: T] extends Accessor[Option[U], Min[U]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
тракт NonDivisible[R] extends NonDivisibleTask[R, NonDivisible[R]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
тракт NonDivisibleTask[R, Tp] extends StrictSplitterCheckTask[R, Tp]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
абстрактный класс ParComposite[FR, SR, R, First <: StrictSplitterCheckTask[FR, _], Second <: StrictSplitterCheckTask[SR, _]] extends Composite[FR, SR, R, First, Second]
Выполняет две задачи параллельно и ожидает завершения обеих.
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс Partition[U >: T, This >: Repr] extends Transformer[(Combiner[U, This], Combiner[U, This]), Partition[U, This]]
- Атрибуты
- protected[this]
- Классы определений
- ParIterableLike
класс Product[U >: T] extends Accessor[U, Product[U]]
- Атрибуты
- protected[this]
- Классы определений
- ParIterableLike
класс Reduce[U >: T] extends Accessor[Option[U], Reduce[U]]
- Атрибуты
- protected[this]
- Классы определений
- ParIterableLike
абстрактный класс ResultMapping[R, Tp, R1] extends NonDivisibleTask[R1, ResultMapping[R, Tp, R1]]
- Атрибуты
- protected[this]
- Классы определений
- ParIterableLike
случайный класс ScanLeaf[U >: T](pit: IterableSplitter[U], op: (U, U) ⇒ U, from: Int, len: Int, prev: Option[ScanLeaf[U]], acc: U) extends ScanTree[U] with scala.Product with Serializable
- Атрибуты
- protected[this]
- Классы определений
- ParIterableLike
случайный класс ScanNode[U >: T](left: ScanTree[U], right: ScanTree[U]) extends ScanTree[U] with scala.Product with Serializable
- Атрибуты
- protected[this]
- Классы определений
- ParIterableLike
тракт ScanTree[U >: T] extends AnyRef
- Атрибуты
- protected[this]
- Классы определений
- ParIterableLike
абстрактный класс SeqComposite[FR, SR, R, First <: StrictSplitterCheckTask[FR, _], Second <: StrictSplitterCheckTask[SR, _]] extends Composite[FR, SR, R, First, Second]
Последовательно выполняет одну задачу за другой.
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
trait SignallingOps[PI <: DelegatedSignalling] extends AnyRef
- Определяющие классы
- ParIterableLike
class Slice[U >: T, This >: Repr] extends Transformer[Combiner[U, This], Slice[U, This]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
class Span[U >: T, This >: Repr] extends Transformer[(Combiner[U, This], Combiner[U, This]), Span[U, This]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
class SplitAt[U >: T, This >: Repr] extends Transformer[(Combiner[U, This], Combiner[U, This]), SplitAt[U, This]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
trait StrictSplitterCheckTask[R, Tp] extends Task[R, Tp]
- Атрибуты
- protected
- Определяющие классы
- ParIterableLike
class Sum[U >: T] extends Accessor[U, Sum[U]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
class Take[U >: T, This >: Repr] extends Transformer[Combiner[U, This], Take[U, This]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
class TakeWhile[U >: T, This >: Repr] extends Transformer[(Combiner[U, This], Boolean), TakeWhile[U, This]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
trait TaskOps[R, Tp] extends AnyRef
- Определяющие классы
- ParIterableLike
класс ToParCollection[U >: T, That] extends Transformer[Combiner[U, That], ToParCollection[U, That]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс ToParMap[K, V, That] extends Transformer[Combiner[(K, V), That], ToParMap[K, V, That]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
тракт Transformer[R, Tp] extends Accessor[R, Tp]
- Атрибуты
- protected
- Определяющие классы
- ParIterableLike
класс Zip[U >: T, S, That] extends Transformer[Combiner[(U, S), That], Zip[U, S, That]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
класс ZipAll[U >: T, S, That] extends Transformer[Combiner[(U, S), That], ZipAll[U, S, That]]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
Члены-абстрактные значения
абстрактный def seq: scala.Iterable[T]
- Определяющие классы
- ParIterableLike → Parallelizable → GenTraversableOnce
абстрактный def size: Int
Размер этого общего набора.
Примечание: не будет завершаться для коллекций бесконечного размера.
- возвращает
количество элементов в этом общем наборе.
- Определяющие классы
- GenTraversableLike → GenTraversableOnce
абстрактный def splitter: IterableSplitter[T]
Создаёт новый параллельный итератор, используемый для обхода элементов этой параллельной коллекции. Этот итератор более специфичен, чем итератор, возвращаемый iterator, и дополнен дополнительными методами доступа и трансформации.
- возвращает
параллельный итератор
- Атрибуты
- protected[parallel]
- Определяющие классы
- ParIterableLike
Члены-значения конкретного типа
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), иначе false.
- Определяющие классы
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode, за исключением упакованных числовых типов и null. Для чисел возвращает значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одинаковое значение хэша для каждого из них. Для null возвращает хэш-код, где null.hashCode вызывает NullPointerException.
- возвращает
значение хэша, согласованное с ==
- Определяющие классы
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен с помощью неявного преобразования из ParIterable[T] в any2stringadd[ParIterable[T]], выполненного методом any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ++[U >: T, That](that: GenTraversableOnce[U])(implicit bf: CanBuildFrom[ParIterable[T], U, That]): That
Возвращает новую параллельную итерируемую последовательность, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элементов параллельной итерируемой последовательности — наиболее общий суперкласс, охватывающий типы элементов двух операндов.
- That
класс возвращаемой коллекции. Где возможно,
That— это тот же класс, что и текущий класс коллекцииRepr, но это зависит от типа элементаBявляется допустимым для этого класса, что означает, что найден неявный экземпляр типаCanBuildFrom[Repr, B, That].- that
итерируемая последовательность для добавления.
- bf
неявное значение класса
CanBuildFrom, которое определяет класс результатаThatиз текущего типа представленияReprи нового типа элементаB.- возвращает
новая коллекция типа
That, которая содержит все элементы этой параллельной итерируемой последовательности, за которыми следуют все элементыthat.
- Определяющие классы
- ParIterableLike → GenTraversableLike
def ->[B](y: B): (ParIterable[T], B)
- Неявный
- Этот член добавлен с помощью неявного преобразования из ParIterable[T] в ArrowAssoc[ParIterable[T]], выполненного методом ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
def /:[S](z: S)(op: (S, T) ⇒ S): S
Применяет бинарный оператор к начальному значению и всем элементам этой параллельной итерируемой последовательности, слева направо.
Примечание: /: — это альтернативная запись для foldLeft; z /: xs — это то же самое, что и xs foldLeft z.
Примеры:
Обратите внимание, что функция свёртки, используемая для вычисления b, эквивалентна той, которая используется для вычисления c.
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = (5 /: a)(_+_) b: Int = 15 scala> val c = (5 /: a)((x,y) => x + y) c: Int = 15
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если только тип основной коллекции не упорядочен. или оператор является ассоциативным и коммутативным.
- z
начальное значение.
- op
бинарный оператор.
- возвращает
-
результат вставки
opмежду последовательными элементами этой параллельной итерируемой последовательности, слева направо, с начальным значениемzслева:op(...op(op(z, x_1), x_2), ..., x_n)
где
x1, ..., xn— элементы этой параллельной итерируемой последовательности.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def :\[S](z: S)(op: (T, S) ⇒ S): S
Применяет бинарный оператор ко всем элементам этого параллельного итерируемого объекта и начальному значению, двигаясь справа налево.
Примечание: :\ — это альтернативная синтаксическая форма foldRight; xs :\ z эквивалентна xs foldRight z.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
Примеры:
Обратите внимание, что функция свёртки, используемая для вычисления b, эквивалентна функции свёртки, используемой для вычисления c.
scala> val a = List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) scala> val b = (a :\ 5)(_+_) b: Int = 15 scala> val c = (a :\ 5)((x,y) => x + y) c: Int = 15
- z
начальное значение
- op
бинарный оператор
- returns
-
результат вставки
opмежду последовательными элементами этого параллельного итерируемого объекта, двигаясь справа налево с начальным значениемzсправа:op(x_1, op(x_2, ... op(x_n, z)...))
где
x1, ..., xn— элементы этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
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
def aggregate[S](z: ⇒ S)(seqop: (S, T) ⇒ S, combop: (S, S) ⇒ S): S
Агрегирует результаты применения оператора к последующим элементам.
Это более общая форма fold и reduce. Она имеет схожую семантику, но не требует, чтобы результат был супертипом типа элемента. Она последовательно проходит по элементам в разных разделах, используя seqop для обновления результата, а затем применяет combop к результатам из разных разделов. Реализация этой операции может работать с произвольным количеством разделов коллекции, поэтому combop может вызываться произвольное количество раз.
Например, можно обработать некоторые элементы и затем получить Set. В этом случае seqop будет обрабатывать элемент и добавлять его в множество, в то время как combop будет конкатенировать два множества из разных разделов. Начальное значение z будет пустым множеством.
pc.aggregate(Set[Int]())(_ += process(_), _ ++ _)
Другой пример — вычисление геометрического среднего из коллекции чисел с плавающей точкой (обычно для этого требуются большие числа с плавающей точкой).
- S
тип накапливаемых результатов
- z
начальное значение для накопленного результата раздела — обычно это будет нейтральный элемент для оператора
seqop(например,Nilдля конкатенации списков или0для суммирования) и может быть вычислено более одного раза- seqop
оператор, используемый для накопления результатов в пределах раздела
- combop
ассоциативный оператор, используемый для объединения результатов из разных разделов
- Definition Classes
- ParIterableLike → GenTraversableOnce
final def asInstanceOf[T0]: T0
Приводит объект-получатель к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] не выбросит исключение. В последнем примере, потому что аргумент типа стирается во время компиляции, проверить, содержатся ли элементы списка в нужном типе, невозможно.
- returns
объект-получатель.
- Definition Classes
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стирания типаT0.
def bf2seq[S, That](bf: CanBuildFrom[ParIterable[T], S, That]): CanBuildFrom[scala.Iterable[T], S, That]
- Атрибуты
- protected[this]
- Definition Classes
- ParIterableLike
implicit def builder2ops[Elem, To](cb: Builder[Elem, To]): BuilderOps[Elem, To]
- Атрибуты
- protected
- Definition Classes
- ParIterableLike
def canEqual(other: Any): Boolean
- Definition Classes
- ParIterableLike
def clone(): AnyRef
def collect[B](pf: PartialFunction[A, B]): ParIterable[B]
Создаёт новую коллекцию, применяя частичную функцию ко всем элементам этого параллельного итерируемого объекта, для которых функция определена.
- B
тип элементов возвращаемой коллекции.
- pf
частичная функция, которая фильтрует и отображает параллельный итерируемый объект.
- returns
новый параллельный итерируемый объект, полученный путём применения данной частичной функции
pfк каждому элементу, для которого она определена, и сбора результатов. Порядок элементов сохраняется.
- Definition Classes
- ParIterableLike → GenTraversableLike
def combinerFactory[S, That](cbf: () ⇒ Combiner[S, That]): CombinerFactory[S, That]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
def combinerFactory: CombinerFactory[T, ParIterable[T]]
Создаёт фабрику комбинирующих объектов. Каждый экземпляр фабрики комбинирующих объектов используется один раз за вызов метода параллельной трансформации для одной коллекции.
По умолчанию фабрика комбинирующих объектов создаёт новый комбинирующий объект каждый раз, когда она запрашивается, если только комбинирующий объект не является потокобезопасным, как указано его методом canBeShared. В этом случае метод возвращает фабрику, которая возвращает один и тот же комбинирующий объект каждый раз. Это обычно делается для параллельных коллекций в многопоточной среде, комбинирующие объекты которых позволяют потокобезопасный доступ.
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
def companion: GenericCompanion[ParIterable] with GenericParCompanion[ParIterable]
Фабричный объект-компаньон, который создаёт экземпляры класса ParIterable. (или его Iterable суперкласс, где класс ParIterable не является Seq.)
- Definition Classes
- ParIterable → GenericParTemplate → GenIterable → GenTraversable → GenericTraversableTemplate
def copyToArray(xs: Array[A], start: Int, len: Int): Unit
Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет заданный массив xs не более чем len элементами этого параллельного итерируемого объекта, начиная с позиции start. Копирование прекратится, когда будет достигнут конец текущего параллельного итерируемого объекта, или конец целевого массива, или будет скопировано len элементов.
Примечание: не завершится для коллекций бесконечного размера.
- xs
массив, который нужно заполнить.
- start
начальный индекс.
- len
максимальное количество элементов для копирования.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def copyToArray(xs: Array[A], start: Int): Unit
Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет заданный массив xs значениями этого параллельного итерируемого объекта, начиная с индекса start. Копирование прекратится, когда будет достигнут конец текущего параллельного итерируемого объекта, или конец целевого массива.
Примечание: не завершится для коллекций бесконечного размера.
- xs
массив, который нужно заполнить.
- start
начальный индекс.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def copyToArray(xs: Array[A]): Unit
Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет заданный массив xs значениями этого параллельного итерируемого объекта. Копирование прекратится, когда будет достигнут конец текущего параллельного итерируемого объекта, или конец целевого массива.
Примечание: не завершится для коллекций бесконечного размера.
- xs
массив, который нужно заполнить.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def count(p: (T) ⇒ Boolean): Int
Подсчитывает количество элементов в параллельном итерируемом объекте, удовлетворяющих предикату.
- p
предикат для проверки элементов.
- returns
количество элементов, удовлетворяющих предикату
p.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def debugBuffer: ArrayBuffer[String]
- Definition Classes
- ParIterableLike
implicit def delegatedSignalling2ops[PI <: DelegatedSignalling](it: PI): SignallingOps[PI]
- Attributes
- protected
- Definition Classes
- ParIterableLike
def drop(n: Int): ParIterable[T]
Выбирает все элементы, кроме первых n.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
- n
количество элементов, которые нужно отбросить из этого параллельного итерируемого объекта.
- returns
параллельный итерируемый объект, состоящий из всех элементов этого параллельного итерируемого объекта, кроме первых
nэлементов, или же пустого параллельного итерируемого объекта, если в этом параллельном итерируемом объекте меньше, чемnэлементов. Еслиnотрицательно, то элементы не отбрасываются.
- Definition Classes
- ParIterableLike → GenTraversableLike
def dropWhile(pred: (T) ⇒ Boolean): ParIterable[T]
Отбрасывает все элементы в самом длинном префиксе элементов, которые удовлетворяют предикату, и возвращает коллекцию, состоящую из оставшихся элементов.
Этот метод будет использовать indexFlag возможности сигнализации. Это означает, что разделители могут устанавливать и считывать состояние indexFlag. Флаг индекса изначально устанавливается в максимальное целое значение.
- pred
предикат для проверки элементов
- returns
коллекция, состоящая из всех элементов после самого длинного префикса элементов в этом параллельном итерируемом объекте, которые удовлетворяют предикату
pred
- Definition Classes
- ParIterableLike → GenTraversableLike
def ensuring(cond: (ParIterable[T]) ⇒ Boolean, msg: ⇒ Any): ParIterable[T]
- Implicit
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: (ParIterable[T]) ⇒ Boolean): ParIterable[T]
- Implicit
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean, msg: ⇒ Any): ParIterable[T]
- Implicit
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean): ParIterable[T]
- Implicit
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
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в противном случае.
- Определяющие классы
- AnyRef
def equals(arg0: Any): Boolean
Метод равенства для ссылочных типов. Реализация по умолчанию делегирует eq.
См. также equals в scala.Any.
- returns
trueесли принимающий объект эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
def exists(p: (T) ⇒ Boolean): Boolean
Проверяет, выполняется ли предикат для некоторого элемента этой параллельной итерируемой коллекции.
Этот метод будет использовать возможности сигнализации abort. Это означает, что разделители могут отправлять и получать сигналы abort.
- p
предикат, используемый для проверки элементов
- returns
true, если
pвыполняется для некоторого элемента, false в противном случае
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def filter(pred: (T) ⇒ Boolean): ParIterable[T]
Выбирает все элементы этой параллельной итерируемой коллекции, которые удовлетворяют предикату.
- pred
предикат, используемый для проверки элементов.
- returns
новая параллельная итерируемая коллекция, состоящая из всех элементов этой параллельной итерируемой коллекции, которые удовлетворяют заданному предикату
p. Их порядок может не сохраняться.
- Определяющие классы
- ParIterableLike → GenTraversableLike
def filterNot(pred: (T) ⇒ Boolean): ParIterable[T]
Выбирает все элементы этой параллельной итерируемой коллекции, которые не удовлетворяют предикату.
- pred
предикат, используемый для проверки элементов.
- returns
новая параллельная итерируемая коллекция, состоящая из всех элементов этой параллельной итерируемой коллекции, которые не удовлетворяют заданному предикату
p. Их порядок может не сохраняться.
- Определяющие классы
- ParIterableLike → GenTraversableLike
def finalize(): Unit
Вызывается сборщиком мусора для принимающего объекта, когда на объект больше нет ссылок.
Подробности о том, когда и вызывается ли метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
- Атрибуты
- protected[lang]
- Определяющие классы
- AnyRef
- Аннотации
- @throws( classOf[java.lang.Throwable] )
- Примечание
не указано в SLS как член AnyRef
def find(p: (T) ⇒ Boolean): Option[T]
Находит некоторый элемент в коллекции, для которого выполняется предикат, если такой элемент существует. Элемент не обязательно должен быть первым таким элементом в порядке итерации.
Если существует несколько элементов, удовлетворяющих предикату, выбор является недетерминированным.
Этот метод будет использовать возможности сигнализации abort. Это означает, что разделители могут отправлять и получать сигналы abort.
- p
предикат, используемый для проверки элементов
- returns
опциональное значение с элементом, если такой элемент существует, или
Noneв противном случае
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def flatMap[B](f: (A) ⇒ GenTraversableOnce[B]): ParIterable[B]
Создаёт новую коллекцию, применяя функцию ко всем элементам этого параллельного итерируемого объекта и используя элементы полученных коллекций.
Например:
def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+")
Тип результирующей коллекции определяется статическим типом параллельного итерируемого объекта. Это может иногда приводить к неожиданным результатам. Например:
// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)
// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet flatMap (word => word.toSeq)
// xs will be an Iterable[Int]
val xs = Map("a" -> List(11,111), "b" -> List(22,222)).flatMap(_._2)
// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2)
- B
тип элементов возвращаемой коллекции.
- f
функция, применяемая к каждому элементу.
- returns
новый параллельный итерируемый объект, полученный путём применения заданной функции, возвращающей коллекцию
fк каждому элементу этого параллельного итерируемого объекта и конкатенацией результатов.
- Definition Classes
- ParIterableLike → GenTraversableLike
def flatten[B]: ParIterable[B]
Преобразует этот параллельный итерируемый объект перечисляемых коллекций в параллельный итерируемый объект, образованный элементами этих перечисляемых коллекций.
Тип результирующей коллекции будет определяться статическим типом параллельного итерируемого объекта. Например:
val xs = List(
Set(1, 2, 3),
Set(1, 2, 3)
).flatten
// xs == List(1, 2, 3, 1, 2, 3)
val ys = Set(
List(1, 2, 3),
List(3, 2, 1)
).flatten
// ys == Set(1, 2, 3)
- B
тип элементов каждой перечисляемой коллекции.
- returns
новый параллельный итерируемый объект, полученный путём конкатенации всех элементов параллельных итерируемых объектов.
- Definition Classes
- GenericTraversableTemplate
def fold[U >: T](z: U)(op: (U, U) ⇒ U): U
Вычисляет свертку элементов последовательности с использованием заданного ассоциативного бинарного оператора. Порядок, в котором элементы сворачиваются, не определён и может быть не детерминированным.
Обратите внимание, что у данного метода отличается сигнатура от методов foldLeft и foldRight в трайте Traversable. Результатом свертки может быть только супертип параметра типа этой параллельной коллекции T.
- U
параметр типа для бинарного оператора, супертип
T.- z
нейтральный элемент для операции свертки, его можно добавлять к результату произвольное количество раз, не изменяя результат (например,
Nilдля конкатенации списков, 0 для сложения или 1 для умножения)- op
бинарный оператор, который должен быть ассоциативным
- returns
результат применения оператора свертки
opмежду всеми элементами иz
- Definition Classes
- ParIterableLike → GenTraversableOnce
def foldLeft[S](z: S)(op: (S, T) ⇒ S): S
Применяет бинарный оператор к начальному значению и всем элементам этого параллельного итерируемого объекта, слева направо.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен, или оператор не ассоциативен и не коммутативен.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого параллельного итерируемого объекта, слева направо с начальным значениемzслева:op(...op(z, x_1), x_2, ..., x_n)
где
x1, ..., xn- элементы этого параллельного итерируемого объекта. Возвращаетz, если этот параллельный итерируемый объект пустой.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def foldRight[S](z: S)(op: (T, S) ⇒ S): S
Применяет бинарный оператор ко всем элементам этого параллельного итерируемого объекта и начальному значению, справа налево.
Примечание: не завершится для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен, или оператор не ассоциативен и не коммутативен.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого параллельного итерируемого объекта, справа налево с начальным значениемzсправа:op(x_1, op(x_2, ... op(x_n, z)...))
где
x1, ..., xn- элементы этого параллельного итерируемого объекта. Возвращаетz, если этот параллельный итерируемый объект пустой.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def forall(p: (T) ⇒ Boolean): Boolean
Проверяет, выполняется ли предикат для всех элементов этого параллельного итерируемого объекта.
Этот метод будет использовать abort возможности сигнализации. Это означает, что разделы могут отправлять и читать abort сигналы.
- p
предикат, используемый для проверки элементов
- returns
true, если
pвыполняется для всех элементов, false в противном случае
- Definition Classes
- ParIterableLike → GenTraversableOnce
def foreach[U](f: (T) ⇒ U): Unit
Применяет функцию f ко всем элементам параллельного итерируемого объекта в неопределённом порядке.
- U
тип результата функции, применённой к каждому элементу, который всегда игнорируется
- f
функция, применяемая к каждому элементу
- Классы-определения
- ParIterableLike → GenTraversableLike → GenTraversableOnce
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной format строкой. Форматные строки аналогичны String.format (@см. java.lang.String.format).
- Неявный
- Этот член добавлен неявным преобразованием из ParIterable[T] в StringFormat[ParIterable[T]] путём метода StringFormat в scala.Predef.
- Классы-определения
- StringFormat
- Аннотации
- @inline()
def genericBuilder[B]: Combiner[B, ParIterable[B]]
Общий билдер, который создаёт экземпляры Traversable с произвольными типами элементов.
- Классы-определения
- GenericParTemplate → GenericTraversableTemplate
def genericCombiner[B]: Combiner[B, ParIterable[B]]
- Классы-определения
- GenericParTemplate
final def getClass(): Class[_]
Возвращает представление класса объекта во время выполнения.
- возвращает
объект класса, соответствующий типу получателя во время выполнения.
def groupBy[K](f: (T) ⇒ K): immutable.ParMap[K, ParIterable[T]]
Разделяет этот параллельный итерируемый объект на карту параллельных итерируемых объектов в соответствии с функцией-дискриминатором.
Примечание: этот метод не переопределяется представлениями. Это означает, что при применении к представлению он всегда заставляет представление и возвращает новый параллельный итерируемый объект.
- K
тип ключей, возвращаемых функцией-дискриминатором.
- f
функция-дискриминатор.
- возвращает
-
Карта от ключей к параллельным итерируемым объектам, для которых выполняется следующее инвариантное условие:
(xs groupBy f)(k) = xs filter (x => f(x) == k)
То есть каждый ключ
kпривязан к параллельному итерируемому объекту тех элементовx, для которыхf(x)равноk.
- Классы-определения
- ParIterableLike → GenTraversableLike
def hasDefiniteSize: Boolean
Проверяет, известен ли размер этого параллельного итерируемого объекта как конечный. Все строгие коллекции известны как имеющие конечный размер. Для нестрогой коллекции, такой как Stream, предикат возвращает true если все элементы были вычислены. Он возвращает false если поток ещё не был обработан до конца. Непустые итераторы обычно возвращают false даже если они были созданы из коллекции с известным конечным размером.
Примечание: многие методы коллекций не будут работать с коллекциями бесконечных размеров. Типичная форма ошибки — бесконечный цикл. Эти методы всегда пытаются выполнить обход, не проверяя предварительно, что hasDefiniteSize возвращает true. Однако проверка hasDefiniteSize может гарантировать, что размер определён и не возникает проблем с бесконечной итерацией.
- возвращает
trueесли эта коллекция известна как имеющая конечный размер,falseв противном случае.
- Классы-определения
- ParIterableLike → GenTraversableOnce
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- возвращает
значение хэш-кода для этого объекта.
def head: T
Выбирает первый элемент этого параллельного итерируемого объекта.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не является упорядоченным.
- возвращает
первый элемент этого параллельного итерируемого объекта.
- Классы-определения
- ParIterableLike → GenTraversableLike
- Исключения
NoSuchElementException, если параллельный итерируемый объект пуст.
def headOption: Option[T]
Необязательно выбирает первый элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- возвращает
первый элемент этого параллельного итерируемого объекта, если он не пуст,
Noneесли он пуст.
- Классы определений
- ParIterableLike → GenTraversableLike
def init: ParIterable[T]
Выбирает все элементы, кроме последнего.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- возвращает
параллельное итерируемое множество, содержащее все элементы этого параллельного итерируемого объекта, кроме последнего.
- Классы определений
- ParIterableLike → GenTraversableLike
- Исключения
UnsupportedOperationException, если параллельное итерируемое множество пусто.
def initTaskSupport(): Unit
- Атрибуты
- protected
- Классы определений
- ParIterableLike
def isEmpty: Boolean
Проверяет, является ли параллельное итерируемое множество пустым.
Примечание: Реализации в подклассах, которые не являются многократно проходимыми, должны следить за тем, чтобы не потреблять какие-либо элементы, когда isEmpty вызывается.
- возвращает
trueесли параллельное итерируемое множество не содержит элементов,falseв противном случае.
- Классы определений
- ParIterableLike → GenTraversableOnce
final def isInstanceOf[T0]: Boolean
Проверяет, соответствует ли динамический тип объекта получателя типу T0.
Обратите внимание, что результат проверки зависит от стирания типов в Scala. Таким образом, выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стирается во время компиляции, проверить, содержатся ли элементы списка указанного типа невозможно.
- возвращает
trueесли объект получателя является экземпляром стиранного типаT0;falseв противном случае.
- Классы определений
- Any
def isStrictSplitterCollection: Boolean
Указывает, имеет ли эта параллельная коллекция строгие разделители.
Это верно в общем случае, и отдельные экземпляры коллекций могут переопределять этот метод. Такие коллекции не смогут выполнить методы, которые полагаются на то, что разделители являются строгими, т. е. возвращают правильное значение в методе remaining.
Этот метод помогает гарантировать, что такие ошибки возникают при вызовах методов, а не позже и непредсказуемым образом.
- Классы определений
- ParIterableLike
final def isTraversableAgain: Boolean
Проверяет, можно ли многократно пройти по этому параллельному итерируемому объекту.
- возвращает
true
- Классы определений
- ParIterableLike → GenTraversableLike → GenTraversableOnce
def iterator: Splitter[T]
Создаёт новый разделяющий итератор для перебора элементов этой коллекции.
По умолчанию этот метод реализован в терминах защищённого метода splitter.
- возвращает
разделяющий итератор
- Классы определений
- ParIterableLike → GenIterableLike
def last: T
Выбирает последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- возвращает
Последний элемент этого параллельного итерируемого объекта.
- Классы определений
- ParIterableLike → GenTraversableLike
- Исключения
NoSuchElementExceptionЕсли параллельное итерируемое множество пусто.
def lastOption: Option[T]
Необязательно выбирает последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- возвращает
последний элемент этого параллельного итерируемого объекта, если он не пуст,
Noneесли он пуст.
- Классы определений
- ParIterableLike → GenTraversableLike
def map[B](f: (A) ⇒ B): ParIterable[B]
Создаёт новую коллекцию, применяя функцию ко всем элементам этого параллельного итерируемого объекта.
- B
тип элементов возвращаемой коллекции.
- f
функция, применяемая к каждому элементу.
- возвращает
новое параллельное итерируемое множество, полученное путём применения заданной функции
fк каждому элементу этого параллельного итерируемого объекта и сбора результатов.
- Классы определений
- ParIterableLike → GenTraversableLike
def max: A
Находит наибольший элемент.
- returns
наибольший элемент этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Exceptions thrown
UnsupportedOperationExceptionесли этот параллельный итерируемый объект пустой.
def maxBy[B](f: (A) ⇒ B): A
Находит первый элемент, который дает наибольшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- returns
первый элемент этого параллельного итерируемого объекта с наибольшим значением, измеренным функцией f.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Exceptions thrown
UnsupportedOperationExceptionесли этот параллельный итерируемый объект пустой.
def min: A
Находит наименьший элемент.
- returns
наименьший элемент этого параллельного итерируемого объекта
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Exceptions thrown
UnsupportedOperationExceptionесли этот параллельный итерируемый объект пустой.
def minBy[B](f: (A) ⇒ B): A
Находит первый элемент, который дает наименьшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- returns
первый элемент этого параллельного итерируемого объекта с наименьшим значением, измеренным функцией f.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Exceptions thrown
UnsupportedOperationExceptionесли этот параллельный итерируемый объект пустой.
def mkString: String
Отображает все элементы этого параллельного итерируемого объекта в строке.
- returns
строковое представление этого параллельного итерируемого объекта. В результирующей строке строковые представления (с помощью метода
toString) всех элементов этого параллельного итерируемого объекта следуют друг за другом без разделительной строки.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def mkString(sep: String): String
Отображает все элементы этого параллельного итерируемого объекта в строке с помощью разделительной строки.
- sep
разделительная строка.
- returns
строковое представление этого параллельного итерируемого объекта. В результирующей строке строковые представления (с помощью метода
toString) всех элементов этого параллельного итерируемого объекта разделяются строкойsep.
- Definition Classes
- ParIterableLike → GenTraversableOnce
List(1, 2, 3).mkString("|") = "1|2|3"
def mkString(start: String, sep: String, end: String): String
Отображает все элементы этого параллельного итерируемого объекта в строке с помощью начальной, конечной и разделительных строк.
- start
начальная строка.
- sep
разделительная строка.
- end
конечная строка.
- returns
строковое представление этого параллельного итерируемого объекта. Результирующая строка начинается со строки
startи заканчивается строкойend. Внутри строковые представления (с помощью методаtoString) всех элементов этого параллельного итерируемого объекта разделяются строкойsep.
- Definition Classes
- ParIterableLike → GenTraversableOnce
List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- returns
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Definition Classes
- AnyRef
def newBuilder: Builder[T, ParIterable[T]]
Построитель, создающий экземпляры типа Traversable[A]
- Атрибуты
- protected[this]
- Определяющие классы
- GenericParTemplate → GenericTraversableTemplate → HasNewBuilder
def newCombiner: Combiner[T, ParIterable[T]]
- Атрибуты
- protected[this]
- Определяющие классы
- GenericParTemplate → HasNewCombiner
def nonEmpty: Boolean
Проверяет, пусто ли параллельное множество.
- возвращает
trueесли параллельное множество содержит хотя бы один элемент,falseв противном случае.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
final def notify(): Unit
Разбуживает один поток, ожидающий монитор объекта-получателя.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не определено SLS в качестве члена AnyRef
final def notifyAll(): Unit
Разбуживает все потоки, ожидающие монитор объекта-получателя.
- Определяющие классы
- AnyRef
- Аннотации
- @native()
- Примечание
не определено SLS в качестве члена AnyRef
def par: ParIterable[T]
Возвращает параллельную реализацию этого набора.
Для большинства типов наборов этот метод создаёт новый параллельный набор, копируя все элементы. Для таких наборов, par занимает линейное время. Изменяемые наборы в этой категории не производят изменяемый параллельный набор с тем же базовым набором данных, поэтому изменения в одном наборе не будут отражаться в другом.
Конкретные наборы (например, ParArray или mutable.ParHashMap) переопределяют это поведение по умолчанию, создавая параллельный набор, который использует тот же базовый набор данных. Для таких наборов, par занимает постоянное или сублинейное время.
Все параллельные наборы возвращают ссылку на себя.
- возвращает
параллельную реализацию этого набора
- Определяющие классы
- ParIterableLike → CustomParallelizable → Parallelizable
def parCombiner: Combiner[T, ParIterable[T]]
Реализация par по умолчанию использует комбинатор, предоставленный этим методом, для создания нового параллельного набора.
- возвращает
комбинатор для параллельного набора типа
ParRepr
- Атрибуты
- protected[this]
- Определяющие классы
- CustomParallelizable → Parallelizable
def partition(pred: (T) ⇒ Boolean): (ParIterable[T], ParIterable[T])
Разделяет этот параллельный набор на два параллельных набора в соответствии с предикатом.
- pred
предикат для разделения.
- возвращает
пара параллельных наборов: первый параллельный набор состоит из всех элементов, удовлетворяющих предикату
p, а второй параллельный набор состоит из всех элементов, которые не удовлетворяют предикату. Относительный порядок элементов в получившихся параллельных наборах может быть не сохранён.
- Определяющие классы
- ParIterableLike → GenTraversableLike
def product: A
Произведение элементов этого набора.
- возвращает
произведение всех элементов в этом параллельном наборе чисел типа
Int. ВместоInt, любой другой типTс неявнымNumeric[T]реализацией может использоваться в качестве типа элементов параллельного набора и в качестве типа результатаproduct. Примеры таких типов:Long,Float,Double,BigInt.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def reduce[U >: T](op: (U, U) ⇒ U): U
Уменьшает элементы этой последовательности, используя указанный ассоциативный бинарный оператор.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
Обратите внимание, что у этого метода разная сигнатура, чем у методов reduceLeft и reduceRight трейта Traversable. Результат сокращения может быть только супертипом параметра типа этого параллельного набора T.
- U
Параметр типа для бинарного оператора, супертип
T.- op
Бинарный оператор, который должен быть ассоциативным.
- returns
Результат применения оператора reduce
opмежду всеми элементами, если коллекция непуста.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Исключения
UnsupportedOperationException, если это параллельное множество пусто.
def reduceLeft[U >: T](op: (U, T) ⇒ U): U
- Definition Classes
- ParIterableLike
def reduceLeftOption[U >: T](op: (U, T) ⇒ U): Option[U]
Необязательно применяет бинарный оператор ко всем элементам этого параллельного итерируемого объекта слева направо.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор ассоциативен и коммутативен.
- op
бинарный оператор.
- returns
значение опциона с результатом
reduceLeft(op)если это параллельное множество не пусто,Noneв противном случае.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def reduceOption[U >: T](op: (U, U) ⇒ U): Option[U]
Необязательно уменьшает элементы этой последовательности, используя указанный ассоциативный бинарный оператор.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
Обратите внимание, что у этого метода разная сигнатура, чем у методов reduceLeftOption и reduceRightOption трейта Traversable. Результат сокращения может быть только супертипом параметра типа этой параллельной коллекции T.
- U
Параметр типа для бинарного оператора, супертип
T.- op
Бинарный оператор, который должен быть ассоциативным.
- returns
Значение Option, содержащее результат применения оператора reduce
opмежду всеми элементами, если коллекция непуста, иNoneв противном случае.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def reduceRight[U >: T](op: (T, U) ⇒ U): U
Применяет бинарный оператор ко всем элементам этого параллельного итерируемого объекта справа налево.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор ассоциативен и коммутативен.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого параллельного итерируемого объекта, справа налево:op(x_1, op(x_2, ..., op(x_{n-1}, x_n)...))где
x1, ..., xn— элементы этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Исключения
UnsupportedOperationExceptionесли это параллельное множество пусто.
def reduceRightOption[U >: T](op: (T, U) ⇒ U): Option[U]
Необязательно применяет бинарный оператор ко всем элементам этого параллельного итерируемого объекта справа налево.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор ассоциативен и коммутативен.
- op
бинарный оператор.
- returns
значение опциона с результатом
reduceRight(op)если это параллельное множество не пусто,Noneв противном случае.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def repr: ParIterable[T]
- Definition Classes
- ParIterableLike → GenTraversableLike
def reuse[S, That](oldc: Option[Combiner[S, That]], newc: Combiner[S, That]): Combiner[S, That]
При необходимости повторно использует существующий комбинирователь для повышения производительности. По умолчанию это не делается — подклассы могут переопределять это поведение. Предоставленный комбинирователь oldc , который потенциально может быть повторно использован, будет либо некоторым комбинирователем из предыдущей вычислительной задачи, либо None, если предыдущей фазы не было (в этом случае этот метод должен вернуть newc).
- oldc
Комбинирователь, являющийся результатом предыдущей задачи, или
None, если предыдущей задачи не было.- newc
Новый, пустой комбинирователь, который можно использовать.
- returns
Либо
newc, либоoldc.
- Attributes
- protected
- Definition Classes
- ParIterableLike
def sameElements(that: GenIterable[A]): Boolean
Проверяет, содержит ли другая итерируемая коллекция те же элементы в том же порядке, что и эта параллельная итерируемая коллекция.
Примечание: может возвращать разные результаты при разных запусках, если только тип базовой коллекции не упорядочен.
Примечание: не будет завершаться для бесконечно больших коллекций.
- that
коллекция для сравнения.
- returns
true, если обе коллекции содержат одинаковые элементы в том же порядке,falseв противном случае.
- Definition Classes
- ParIterableLike → GenIterableLike
def scan(z: T)(op: (T, T) ⇒ T): ParIterable[T]
Вычисляет префиксное сканирование элементов коллекции.
Примечание: нейтральный элемент z может быть применён более одного раза.
- z
нейтральный элемент для оператора
op- op
ассоциативный оператор для сканирования
- returns
новая параллельная итерируемая коллекция, содержащая префиксное сканирование элементов в этой параллельной итерируемой коллекции
- Definition Classes
- ParIterableLike → GenTraversableLike
def scanBlockSize: Int
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
def scanLeft[S, That](z: S)(op: (S, T) ⇒ S)(implicit bf: CanBuildFrom[ParIterable[T], S, That]): That
Создаёт коллекцию, содержащую кумулятивные результаты применения оператора слева направо.
Примечание: не будет завершаться для бесконечно больших коллекций.
Примечание: может возвращать разные результаты при разных запусках, если только тип базовой коллекции не упорядочен.
- That
фактический тип результирующей коллекции
- z
начальное значение
- op
бинарный оператор, применяемый к промежуточному результату и элементу
- bf
явное значение класса
CanBuildFrom, определяющее класс результатаThatиз текущего типа представленияReprи нового типа элементаB.- returns
коллекция с промежуточными результатами
- Definition Classes
- ParIterableLike → GenTraversableLike
def scanRight[S, That](z: S)(op: (T, S) ⇒ S)(implicit bf: CanBuildFrom[ParIterable[T], S, That]): That
Создаёт коллекцию, содержащую кумулятивные результаты применения оператора справа налево. Голова коллекции — это последний кумулятивный результат.
Примечание: не будет завершаться для бесконечно больших коллекций.
Примечание: может возвращать разные результаты при разных запусках, если только тип базовой коллекции не упорядочен.
Пример:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
- That
фактический тип результирующей коллекции
- z
начальное значение
- op
бинарный оператор, применяемый к промежуточному результату и элементу
- bf
явное значение класса
CanBuildFrom, определяющее класс результатаThatиз текущего типа представленияReprи нового типа элементаB.- returns
коллекция с промежуточными результатами
- Definition Classes
- ParIterableLike → GenTraversableLike
def sequentially[S, That <: Parallel](b: (scala.Iterable[T]) ⇒ Parallelizable[S, That]): ParIterable[T]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
def sizeHintIfCheap: Int
Размер этого набора или итератора, если он может быть вычислен недорого
- returns
количество элементов в этом наборе или итераторе, или -1, если размер не может быть определен дешево
- Attributes
- protected[collection]
- Definition Classes
- GenTraversableOnce
def slice(unc_from: Int, unc_until: Int): ParIterable[T]
Выбирает интервал элементов. Полученный набор состоит из всех элементов x, которые удовлетворяют инварианту:
from <= indexOf(x) < until
Примечание: могут быть получены разные результаты для разных запусков, если тип базового набора не упорядочен.
- unc_from
наименьший индекс для включения из этого параллельного итератора.
- unc_until
наименьший индекс для исключения из этого параллельного итератора.
- returns
параллельный итератор, содержащий элементы, большие или равные индексу
from, и простирающийся до (но не включая) индексаuntilэтого параллельного итератора.
- Definition Classes
- ParIterableLike → GenTraversableLike
def span(pred: (T) ⇒ Boolean): (ParIterable[T], ParIterable[T])
Разделяет этот параллельный итератор на пару префикс/суффикс в соответствии с предикатом.
Этот метод будет использовать indexFlag возможности сигнализации. Это означает, что разделители могут устанавливать и читать indexFlag состояние. Флаг индекса изначально устанавливается в максимальное целое значение.
- pred
предикат, используемый для проверки элементов
- returns
пара, состоящая из самого длинного префикса набора, для которого все элементы удовлетворяют
pred, и остальная часть набора
- Definition Classes
- ParIterableLike → GenTraversableLike
def splitAt(n: Int): (ParIterable[T], ParIterable[T])
Разделяет этот параллельный итератор на два в заданной позиции. Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
Примечание: могут быть получены разные результаты для разных запусков, если тип базового набора не упорядочен.
- n
позиция, в которой нужно разделить.
- returns
пара параллельных итераторов, состоящая из первых
nэлементов этого параллельного итератора и других элементов.
- Definition Classes
- ParIterableLike → GenTraversableLike
def stringPrefix: String
Определяет префикс представления toString этого объекта.
- returns
представление строки, которое начинает результат применения
toStringк этому параллельному итератору. По умолчанию префикс строки является простым именем класса параллельного итератора.
- Definition Classes
- ParIterable → GenTraversableLike
def sum: A
Суммирует элементы этого набора.
- returns
сумма всех элементов в этом параллельном итераторе чисел типа
Int. ВместоInt, любой другой типTс неявнойNumeric[T]реализацией может использоваться в качестве типа элементов параллельного итератора и типа результатаsum. Примерами таких типов являются:Long,Float,Double,BigInt.
- Definition Classes
- ParIterableLike → GenTraversableOnce
final def synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
def tail: ParIterable[T]
Выбирает все элементы, кроме первого.
Примечание: могут быть получены разные результаты для разных запусков, если тип базового набора не упорядочен.
- returns
параллельный итератор, состоящий из всех элементов этого параллельного итератора, кроме первого.
- Definition Classes
- ParIterableLike → GenTraversableLike
- Exceptions thrown
UnsupportedOperationException, если параллельный итератор пуст.
def take(n: Int): ParIterable[T]
Выбирает первые n элементов.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
- n
число элементов, которые нужно взять из этого параллельного итерируемого набора.
- returns
параллельный итерируемый набор, содержащий только первые
nэлементы этого параллельного итерируемого набора, или же весь параллельный итерируемый набор, если он содержит меньшеnэлементов. Еслиnотрицательно, возвращает пустой параллельный итерируемый набор.
- Definition Classes
- ParIterableLike → GenTraversableLike
def takeWhile(pred: (T) ⇒ Boolean): ParIterable[T]
Берет самую длинную префиксную часть элементов, удовлетворяющих предикату.
Этот метод будет использовать indexFlag возможности сигнализации. Это означает, что разделители могут устанавливать и читать состояние indexFlag. Флаг индекса по умолчанию устанавливается в максимальное целое значение.
- pred
предикат, используемый для проверки элементов
- returns
самая длинная префиксная часть этого параллельного итерируемого набора элементов, которые удовлетворяют предикату
pred
- Definition Classes
- ParIterableLike → GenTraversableLike
implicit def task2ops[R, Tp](tsk: SSCTask[R, Tp]): TaskOps[R, Tp]
- Attributes
- protected
- Definition Classes
- ParIterableLike
def tasksupport: TaskSupport
Объект поддержки задач, ответственный за планирование и балансировку задач на процессорах.
- Definition Classes
- ParIterableLike
- See also
def tasksupport_=(ts: TaskSupport): Unit
Изменяет объект поддержки задач, ответственный за планирование и балансировку задач на процессорах.
Объект поддержки задач можно изменить в параллельной коллекции после ее создания, но только во время фазы покоя, т.е. при отсутствии одновременных вызовов методов параллельной коллекции.
Вот как можно изменить поддержку задач параллельной коллекции:
import scala.collection.parallel._ val pc = mutable.ParArray(1, 2, 3) pc.tasksupport = new ForkJoinTaskSupport( new java.util.concurrent.ForkJoinPool(2))
- Definition Classes
- ParIterableLike
- See also
def to[Col[_]]: Col[A]
Преобразует этот параллельный итерируемый набор в другой, копируя все элементы.
Примечание: не будет завершаться для наборов бесконечного размера.
- Col
Тип коллекции для построения.
- returns
новая коллекция, содержащая все элементы этого параллельного итерируемого набора.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toArray: Array[A]
Преобразует этот параллельный итерируемый набор в массив.
Примечание: не будет завершаться для наборов бесконечного размера.
- returns
массив, содержащий все элементы этого параллельного итерируемого набора. Должен быть доступен
ClassTagдля типа элемента этого параллельного итерируемого набора.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toBuffer[U >: T]: Buffer[U]
Использует содержимое этого параллельного итерируемого набора для создания нового изменяемого буфера.
Примечание: не будет завершаться для наборов бесконечного размера.
- returns
буфер, содержащий все элементы этого параллельного итерируемого набора.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toIndexedSeq: immutable.IndexedSeq[T]
Преобразует этот параллельный итерируемый набор в индексированную последовательность.
Примечание: не будет завершаться для наборов бесконечного размера.
- returns
индексированная последовательность, содержащая все элементы этого параллельного итерируемого набора.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toIterable: ParIterable[T]
Преобразует этот параллельный итерируемый объект в итерируемую коллекцию. Обратите внимание, что выбор целевого Iterable в этой реализации по умолчанию ленивый, так как этот TraversableOnce может быть ленивым и невычисленным (т.е. он может быть итератором, который можно пройти только один раз).
Примечание: не будет завершаться для коллекций бесконечного размера.
- returns
a
Iterableсодержащий все элементы этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toIterator: scala.Iterator[T]
Возвращает итератор по элементам в этом параллельном итерируемом объекте. Вернет тот же итератор, если этот экземпляр уже является итератором.
Примечание: не будет завершаться для коллекций бесконечного размера.
- returns
итератор, содержащий все элементы этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toList: List[T]
Преобразует этот параллельный итерируемый объект в список.
Примечание: не будет завершаться для коллекций бесконечного размера.
- returns
список, содержащий все элементы этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toMap[T, U]: collection.Map[T, U]
Преобразует этот параллельный итерируемый объект в словарь. Этот метод недоступен, если элементы не являются членами Tuple2, при этом каждый ((T, U)) становится парой ключ-значение в словаре. Повторные ключи будут перезаписаны последующими ключами: если это неупорядоченная коллекция, то какой ключ находится в результирующем словаре, не определено.
Примечание: не будет завершаться для коллекций бесконечного размера.
- returns
словарь типа
immutable.Map[T, U], содержащий все пары ключ/значение типа(T, U)этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toParArray: ParArray[T]
- Неявный
- Этот член добавляется неявным преобразованием из ParIterable[T] в CollectionsHaveToParArray[ParIterable[T], T] выполняемым методом CollectionsHaveToParArray в scala.collection.parallel. Это преобразование произойдет только в том случае, если в области видимости имеется неявное значение типа (ParIterable[T]) ⇒ GenTraversableOnce[T].
- Definition Classes
- CollectionsHaveToParArray
def toParCollection[U >: T, That](cbf: () ⇒ Combiner[U, That]): That
- Атрибуты
- защищенный
- Definition Classes
- ParIterableLike
def toParMap[K, V, That](cbf: () ⇒ Combiner[(K, V), That])(implicit ev: <:<[T, (K, V)]): That
- Атрибуты
- защищенный
- Definition Classes
- ParIterableLike
def toSeq: ParSeq[T]
Преобразует этот параллельный итерируемый объект в последовательность. Как и в toIterable, он ленивый в этой реализации по умолчанию, так как этот TraversableOnce может быть ленивым и невычисленным.
Примечание: не будет завершаться для коллекций бесконечного размера.
- returns
последовательность, содержащая все элементы этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toSet[U >: T]: immutable.ParSet[U]
Преобразует этот параллельный итерируемый объект в множество.
Примечание: не будет завершаться для коллекций бесконечного размера.
- returns
множество, содержащее все элементы этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toStream: Stream[T]
Преобразует это параллельное итерируемое множество в поток.
- возвращает
поток, содержащий все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def toString(): String
Создает строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.
- возвращает
строковое представление объекта.
- Определяющие классы
- ParIterableLike → AnyRef → Any
def toTraversable: GenTraversable[T]
Преобразует это параллельное итерируемое множество в неопределённое множество Traversable. Вернёт ту же коллекцию, если текущий экземпляр уже Traversable.
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
Traversable, содержащее все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def toVector: Vector[T]
Преобразует это параллельное итерируемое множество в вектор.
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
вектор, содержащий все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def transpose[B](implicit asTraversable: (T) ⇒ GenTraversableOnce[B]): ParIterable[ParIterable[B]]
Транспонирует это множество коллекций traversable в множество коллекций.
Тип результирующей коллекции определяется статическим типом коллекции. Например:
val xs = List(
Set(1, 2, 3),
Set(4, 5, 6)).transpose
// xs == List(
// List(1, 4),
// List(2, 5),
// List(3, 6))
val ys = Vector(
List(1, 2, 3),
List(4, 5, 6)).transpose
// ys == Vector(
// Vector(1, 4),
// Vector(2, 5),
// Vector(3, 6))
- B
тип элементов каждой коллекции traversable.
- asTraversable
явное преобразование, которое утверждает, что тип элемента этой коллекции является
Traversable.- возвращает
двумерную коллекцию коллекций, где n-я строка — это n-й столбец этой коллекции.
- Определяющие классы
- GenericTraversableTemplate
- Аннотации
- @migration
- Миграция
(Изменено в версии 2.9.0)
transposeвыбрасываетIllegalArgumentExceptionесли коллекции не имеют одинаковый размер.- Исключения
IllegalArgumentExceptionесли все коллекции в этой коллекции не имеют одинаковый размер.
def unzip[A1, A2](implicit asPair: (T) ⇒ (A1, A2)): (ParIterable[A1], ParIterable[A2])
Преобразует это множество пар в два множества первой и второй половины каждой пары.
val xs = Traversable(
(1, "one"),
(2, "two"),
(3, "three")).unzip
// xs == (Traversable(1, 2, 3),
// Traversable(one, two, three))
- A1
тип первой половины пар элементов
- A2
тип второй половины пар элементов
- asPair
явное преобразование, которое утверждает, что тип элемента этой коллекции — пара.
- возвращает
пара коллекций, содержащих первую, соответственно вторую половину каждой пары элементов этой коллекции.
- Определяющие классы
- GenericTraversableTemplate
def unzip3[A1, A2, A3](implicit asTriple: (T) ⇒ (A1, A2, A3)): (ParIterable[A1], ParIterable[A2], ParIterable[A3])
Преобразует это множество троек в три множества первого, второго и третьего элемента каждой тройки.
val xs = Traversable(
(1, "one", '1'),
(2, "two", '2'),
(3, "three", '3')).unzip3
// xs == (Traversable(1, 2, 3),
// Traversable(one, two, three),
// Traversable(1, 2, 3))
- A1
тип первого члена троек элементов
- A2
тип второго члена троек элементов
- A3
тип третьего члена троек элементов
- asTriple
явное преобразование, которое утверждает, что тип элемента этой коллекции — тройка.
- возвращает
тройка коллекций, содержащих первый, второй, соответственно третий член каждой тройки элементов этой коллекции.
- Определяющие классы
- GenericTraversableTemplate
final def wait(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @throws( ... )
final def wait(arg0: Long, arg1: Int): Unit
- Классы-определения
- AnyRef
- Аннотации
- @throws( ... )
final def wait(arg0: Long): Unit
def withFilter(pred: (T) ⇒ Boolean): ParIterable[T]
- Классы-определения
- ParIterableLike
def wrap[R](body: ⇒ R): NonDivisible[R]
- Атрибуты
- protected
- Классы-определения
- ParIterableLike
def zip[B](that: GenIterable[B]): ParIterable[(A, B)]
Возвращает параллельное множество, сформированное из этого параллельного множества и другой коллекции итераторов, объединяя соответствующие элементы в пары. Если одна из двух коллекций длиннее другой, её оставшиеся элементы игнорируются.
Примечание: результаты могут отличаться при разных запусках, если тип базовой коллекции не упорядочен.
- B
тип второй половины возвращаемых пар
- that
Итератор, предоставляющий вторую половину каждой пары результата
- возвращает
новое параллельное множество, содержащее пары, состоящие из соответствующих элементов этого параллельного множества и
that. Длина возвращаемой коллекции равна минимуму длин этого параллельного множества иthat.
- Классы-определения
- ParIterableLike → GenIterableLike
def zipAll[B](that: Iterable[B], thisElem: A, thatElem: B): ParIterable[(A, B)]
Возвращает параллельное множество, сформированное из этого параллельного множества и другой коллекции итераторов, объединяя соответствующие элементы в пары. Если одна из двух коллекций короче другой, для расширения более короткой коллекции до длины более длинной используются элементы-заполнители.
Примечание: результаты могут отличаться при разных запусках, если тип базовой коллекции не упорядочен.
def zipWithIndex: ParIterable[(A, Int)]
Объединяет это параллельное множество со своими индексами.
Примечание: результаты могут отличаться при разных запусках, если тип базовой коллекции не упорядочен.
def →[B](y: B): (ParIterable[T], B)
- Неявное
- Этот член добавлен неявным преобразованием из ParIterable[T] в ArrowAssoc[ParIterable[T]] выполненным методом ArrowAssoc в scala.Predef.
- Классы-определения
- ArrowAssoc
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/collection/parallel/ParIterable.html
Шаблонный трейт для параллельных итерируемых коллекций.
Это базовый трейт для параллельных коллекций Scala. Он определяет поведение, общее для всех параллельных коллекций. Конкретные параллельные коллекции должны унаследовать этот трейт и
ParIterableесли они хотят определить специфические фабрики комбинирователей.Параллельные операции реализуются с помощью алгоритмов "разделяй и властвуй", которые хорошо параллелизируются. Основная идея заключается в разделении коллекции на более мелкие части до тех пор, пока они не станут достаточно малыми для последовательной обработки.
Все параллельные операции реализованы как задачи в этом трейте. Задачи опираются на концепцию разделителей, которые расширяют итераторы. Каждая параллельная коллекция определяет:
которая возвращает экземпляр
IterableSplitter[T], который является подтипомSplitter[T]. У разделителей есть методremainingдля проверки оставшегося числа элементов и методsplit, который определяется разделителями. Методsplitделит итерируемых разделителями на непересекающиеся подмножества:который разбивает разделитель на последовательность непересекающихся подразделителей. Как правило, это очень быстрая операция, которая просто создаёт оболочки вокруг коллекции-приёмника. Это можно повторять рекурсивно.
Задачи планируются для выполнения через объект scala.collection.parallel.TaskSupport, который можно изменить через
tasksupportустановщик коллекции.Метод
newCombinerгенерирует новый комбинирователь. Комбинирователи являются расширением билдеров. Они предоставляют методcombineкоторый объединяет два комбинирователя и возвращает комбинирователь, содержащий элементы обоих комбинирователей. Этот метод может быть реализован путём агрессивного копирования всех элементов в новый комбинирователь или путём ленивой привязки их результатов. Рекомендуется избегать копирования всех элементов по соображениям производительности, хотя эта стоимость может быть незначительной в зависимости от использования. Стандартные параллельные комбинирователи коллекций избегают копирования при слиянии результатов, полагаясь либо на двухэтапное ленивое построение, либо на свойства определённой структуры данных.Методы:
производят последовательную или параллельную реализацию коллекции соответственно. Метод
parпросто возвращает ссылку на эту параллельную коллекцию. Методseqэффективный - он не скопирует элементы. Вместо этого он создаст последовательную версию коллекции, используя ту же самую базовую структуру данных. Обратите внимание, что это не всегда верно для последовательных коллекций - они могут скопировать элементы и произвести другую базовую структуру данных.Сочетание методов
toMap,toSeqилиtoSetвместе сparиseqявляется гибким способом переключения между различными типами коллекций.Поскольку этот трейт расширяет трейт
GenIterable, методы, такие какsize, также должны быть реализованы в конкретных коллекциях, в то время какiteratorпо умолчанию перенаправляется наsplitter.Каждая параллельная коллекция привязана к определённому пулу fork/join, в котором хранятся спящие рабочие потоки. Пул fork/join содержит другую информацию, например, уровень параллелизма, то есть количество используемых процессоров. При создании коллекции ей назначается по умолчанию пул fork/join, найденный в пакете
scala.parallel.Параллельные коллекции не обязательно упорядочены по операции
foreach(см.Traversable). Параллельные последовательности имеют хорошо определённый порядок для итераторов - создание итератора и линейное перемещение по элементам всегда даёт один и тот же порядок. Однако массовые операции, такие какforeach,mapилиfilter, всегда происходят в неопределённом порядке для всех параллельных коллекций.Существующие реализации параллельных коллекций предоставляют жёсткие параллельные итераторы. Строгие параллельные итераторы знают количество элементов, которые ещё предстоит пройти. Также возможно предоставить нестрогие параллельные итераторы, которые не знают количество оставшихся элементов. Для этого новая реализация коллекции должна переопределить
isStrictSplitterCollectionнаfalse. Это сделает недоступными некоторые операции.Чтобы создать новую параллельную коллекцию, расширьте трейт
ParIterable, и реализуйтеsize,splitter,newCombinerиseq. Наличие неявной фабрики комбинирователей требует расширения этого трейта, а также предоставления компаньон-объекта, как и в обычных коллекциях.Метод
sizeреализован как операция постоянного времени для параллельных коллекций, и параллельные операции коллекций полагаются на это предположение.Передаваемые в определённые операции высшие-порядковые функции могут содержать побочные эффекты. Поскольку реализации массовых операций могут быть не последовательными, это означает, что побочные эффекты могут быть непредсказуемыми и могут привести к гонкам данных, тупикам или недействительности состояния, если не принять мер предосторожности. Программист должен либо избежать использования побочных эффектов, либо использовать какую-либо синхронизацию при доступе к изменяемым данным.
тип элементов коллекции
2.9