Трейт scala.collection.parallel.mutable.ParIterable
Компаньон объект ParIterable
трейт ParIterable[T] extends GenIterable[T] with parallel.ParIterable[T] with GenericParTemplate[T, ParIterable] with ParIterableLike[T, ParIterable[T], Iterable[T]] with Mutable
Члены типа
тракт 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
abstract class SeqComposite[FR, SR, R, First <: StrictSplitterCheckTask[FR, _], Second <: StrictSplitterCheckTask[SR, _]] extends Composite[FR, SR, R, First, Second]
Последовательно выполняет одну задачу за другой.
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
trait SignallingOps[PI <: DelegatedSignalling] extends AnyRef
- Definition Classes
- ParIterableLike
class Slice[U >: T, This >: Repr] extends Transformer[Combiner[U, This], Slice[U, This]]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
class Span[U >: T, This >: Repr] extends Transformer[(Combiner[U, This], Combiner[U, This]), Span[U, This]]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
class SplitAt[U >: T, This >: Repr] extends Transformer[(Combiner[U, This], Combiner[U, This]), SplitAt[U, This]]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
trait StrictSplitterCheckTask[R, Tp] extends Task[R, Tp]
- Attributes
- protected
- Definition Classes
- ParIterableLike
class Sum[U >: T] extends Accessor[U, Sum[U]]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
class Take[U >: T, This >: Repr] extends Transformer[Combiner[U, This], Take[U, This]]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
класс TakeWhile[U >: T, This >: Repr] extends Transformer[(Combiner[U, This], Boolean), TakeWhile[U, This]]
- Атрибуты
- protected[this]
- Классы определения
- ParIterableLike
тракт 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
тип SSCTask[R, Tp] = StrictSplitterCheckTask[R, Tp]
- Классы определения
- ParIterableLike
Абстрактные члены-значения
abstract def seq: mutable.Iterable[T]
- Определяющие классы
- ParIterable → ParIterableLike → GenIterable → GenTraversable → Parallelizable → GenTraversableOnce
abstract def size: Int
Размер этого общего набора.
Примечание: не будет завершаться для наборов бесконечного размера.
- возвращает
количество элементов в этом общем наборе.
- Определяющие классы
- GenTraversableLike → GenTraversableOnce
abstract 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
- Exceptions thrown
ClassCastExceptionесли объект-получатель не является экземпляром стирания типаT0.
def bf2seq[S, That](bf: CanBuildFrom[ParIterable[T], S, That]): CanBuildFrom[Iterable[T], S, That]
- Attributes
- protected[this]
- Definition Classes
- ParIterableLike
implicit def builder2ops[Elem, To](cb: Builder[Elem, To]): BuilderOps[Elem, To]
- Attributes
- protected
- Definition Classes
- ParIterableLike
def canEqual(other: Any): Boolean
- Definition Classes
- ParIterableLike
def clone(): AnyRef
Создать копию объекта-приёмника.
По умолчанию реализация метода clone зависит от платформы.
- возвращает
копию объекта-приёмника.
def collect[B](pf: PartialFunction[A, B]): ParIterable[B]
Создаёт новую коллекцию, применяя частичную функцию ко всем элементам этого параллельного итерируемого объекта, для которых эта функция определена.
- B
тип элемента возвращаемой коллекции.
- pf
частичная функция, которая фильтрует и отображает параллельный итерируемый объект.
- возвращает
новую параллельную итерируемую коллекцию, полученную путём применения данной частичной функции
pfк каждому элементу, для которого она определена, и сбора результатов. Порядок элементов сохраняется.
- Определяющие классы
- ParIterableLike → GenTraversableLike
def combinerFactory[S, That](cbf: () ⇒ Combiner[S, That]): CombinerFactory[S, That]
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
def combinerFactory: CombinerFactory[T, ParIterable[T]]
Создаёт фабрику комбинаторов. Каждый экземпляр фабрики комбинаторов используется один раз за вызов метода параллельного преобразования для одной коллекции.
По умолчанию фабрика комбинаторов создаёт новый комбинатор каждый раз, когда он запрашивается, если только комбинатор не является потокобезопасным, как указано его методом canBeShared. В этом случае метод возвращает фабрику, которая возвращает один и тот же комбинатор каждый раз. Это обычно делается для параллельных коллекций с одновременным доступом, комбинаторы которых позволяют потокобезопасный доступ.
- Атрибуты
- protected[this]
- Определяющие классы
- ParIterableLike
def companion: GenericCompanion[ParIterable] with GenericParCompanion[ParIterable]
Фабричный объект-компаньон, который строит экземпляры класса ParIterable. (или его Iterable суперкласс, где класс ParIterable не является Seq.)
- Определяющие классы
- ParIterable → ParIterable → GenericParTemplate → GenIterable → GenTraversable → GenericTraversableTemplate
def copyToArray(xs: Array[A], start: Int, len: Int): Unit
Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет данный массив xs не более чем len элементами этого параллельного итерируемого объекта, начиная с позиции start. Копирование прекратится, когда будет достигнут либо конец текущего параллельного итерируемого объекта, либо конец целевого массива, либо len элементов были скопированы.
Примечание: не завершится для коллекций бесконечного размера.
- xs
массив для заполнения.
- start
начальный индекс.
- len
максимальное количество элементов для копирования.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def copyToArray(xs: Array[A], start: Int): Unit
Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет данный массив xs значениями этого параллельного итерируемого объекта, начиная с индекса start. Копирование прекратится, когда будет достигнут либо конец текущего параллельного итерируемого объекта, либо конец целевого массива.
Примечание: не завершится для коллекций бесконечного размера.
- xs
массив для заполнения.
- start
начальный индекс.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def copyToArray(xs: Array[A]): Unit
Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет заданный массив xs значениями этого параллельного итерируемого объекта. Копирование остановится, как только будет достигнут конец текущего параллельного итерируемого объекта или конец целевого массива.
Примечание: не будет завершаться для коллекций бесконечного размера.
- xs
массив для заполнения.
- Классы определений
- ParIterableLike → GenTraversableOnce
def count(p: (T) ⇒ Boolean): Int
Подсчитывает количество элементов в параллельном итерируемом объекте, которые удовлетворяют предикату.
- p
предикат, используемый для проверки элементов.
- возвращает
количество элементов, удовлетворяющих предикату
p.
- Классы определений
- ParIterableLike → GenTraversableOnce
def debugBuffer: ArrayBuffer[String]
- Классы определений
- ParIterableLike
implicit def delegatedSignalling2ops[PI <: DelegatedSignalling](it: PI): SignallingOps[PI]
- Атрибуты
- protected
- Классы определений
- ParIterableLike
def drop(n: Int): ParIterable[T]
Выбирает все элементы, кроме первых n.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- n
количество элементов для удаления из этого параллельного итерируемого объекта.
- возвращает
параллельный итерируемый объект, состоящий из всех элементов этого параллельного итерируемого объекта, кроме первых
nэлементов, или же пустой параллельный итерируемый объект, если у этого параллельного итерируемого объекта меньше, чемnэлементов. Еслиnотрицательно, элементы не удаляются.
- Классы определений
- ParIterableLike → GenTraversableLike
def dropWhile(pred: (T) ⇒ Boolean): ParIterable[T]
Удаляет все элементы в самом длинном префиксе элементов, удовлетворяющих предикату, и возвращает коллекцию, составленную из оставшихся элементов.
Этот метод будет использовать indexFlag возможности сигнализации. Это означает, что разделители могут устанавливать и считывать indexFlag состояние. Флаг индекса первоначально устанавливается в максимальное целое значение.
- pred
предикат, используемый для проверки элементов
- возвращает
коллекция, составленная из всех элементов после самого длинного префикса элементов в этом параллельном итерируемом объекте, удовлетворяющих предикату
pred
- Классы определений
- ParIterableLike → GenTraversableLike
def ensuring(cond: (ParIterable[T]) ⇒ Boolean, msg: ⇒ Any): ParIterable[T]
- Неявный
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]] с помощью метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def ensuring(cond: (ParIterable[T]) ⇒ Boolean): ParIterable[T]
- Неявный
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]] с помощью метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def ensuring(cond: Boolean, msg: ⇒ Any): ParIterable[T]
- Неявный
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]], выполненное методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): ParIterable[T]
- Неявный
- Этот член добавлен неявным преобразованием из ParIterable[T] в Ensuring[ParIterable[T]], выполненное методом Ensuring в scala.Predef.
- Определяющие классы
- 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).
- возвращает
trueесли аргумент является ссылкой на объект-получатель;falseв противном случае.
- Определяющие классы
- AnyRef
def equals(arg0: Any): Boolean
Метод равенства для ссылочных типов. Реализация по умолчанию делегирует eq.
См. также equals в scala.Any.
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
def exists(p: (T) ⇒ Boolean): Boolean
Проверяет, выполняется ли предикат для некоторого элемента этого параллельного итерируемого объекта.
Этот метод будет использовать abort возможности сигнализации. Это означает, что разделы могут отправлять и читать abort сигналы.
- p
предикат, используемый для проверки элементов
- возвращает
true, если
pвыполняется для какого-либо элемента, иначе false
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def filter(pred: (T) ⇒ Boolean): ParIterable[T]
Выбирает все элементы этого параллельного итерируемого объекта, которые удовлетворяют предикату.
- pred
предикат, используемый для проверки элементов.
- возвращает
новый параллельный итерируемый объект, содержащий все элементы этого параллельного итерируемого объекта, которые удовлетворяют заданному предикату
p. Их порядок может быть не сохранён.
- Определяющие классы
- ParIterableLike → GenTraversableLike
def filterNot(pred: (T) ⇒ Boolean): ParIterable[T]
Выбирает все элементы этого параллельного итерируемого объекта, которые не удовлетворяют предикату.
- pred
предикат, используемый для проверки элементов.
- возвращает
новый параллельный итерируемый объект, содержащий все элементы этого параллельного итерируемого объекта, которые не удовлетворяют заданному предикату
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
значение типа Option с элементом, если такой элемент существует, или
Noneв противном случае
- Definition Classes
- 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 возможности сигнализации. Это означает, что разделители могут отправлять и читать seq сигналы.
- p
предикат, используемый для проверки элементов
- возвращает
true, если
pвыполняется для всех элементов, иначе false
- Классы определений
- 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
def head: T
Выбирает первый элемент этого параллельного итерируемого объекта.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
первый элемент этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableLike
- Exceptions thrown
NoSuchElementException, если параллельный итерируемый объект пуст.
def headOption: Option[T]
Возвращает первый элемент, если он есть.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
первый элемент этого параллельного итерируемого объекта, если он не пуст,
Noneесли он пуст.
- Definition Classes
- ParIterableLike → GenTraversableLike
def init: ParIterable[T]
Выбирает все элементы, кроме последнего.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
параллельный итерируемый объект, содержащий все элементы этого параллельного итерируемого объекта, кроме последнего.
- Definition Classes
- ParIterableLike → GenTraversableLike
- Exceptions thrown
UnsupportedOperationExceptionесли параллельный итерируемый объект пуст.
def initTaskSupport(): Unit
- Attributes
- protected
- Definition Classes
- ParIterableLike
def isEmpty: Boolean
Проверяет, пуст ли параллельный итерируемый объект.
Примечание: Реализации в подклассах, которые не являются многократно итерируемыми, должны позаботиться о том, чтобы не использовать никакие элементы при вызове isEmpty.
- returns
trueесли параллельный итерируемый объект не содержит элементов,falseв противном случае.
- Definition Classes
- ParIterableLike → GenTraversableOnce
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки выполняется с учётом правил стирания Scala. Следовательно, выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за стирания аргумента типа во время компиляции невозможно проверить, относятся ли содержимое списка к указанному типу.
- returns
trueесли объект-получатель является экземпляром стирания типаT0;falseв противном случае.
- Definition Classes
- Any
def isStrictSplitterCollection: Boolean
Указывает, имеет ли эта параллельная коллекция строгие разделители.
Это верно в общем случае, и конкретные экземпляры коллекций могут переопределить этот метод. Такие коллекции не смогут выполнить методы, которые полагаются на строгие разделители, то есть на возврат правильного значения в методе remaining.
Этот метод помогает гарантировать, что такие ошибки будут возникать при вызовах методов, а не позже и непредсказуемым образом.
- Definition Classes
- ParIterableLike
final def isTraversableAgain: Boolean
Проверяет, можно ли повторно проходить этот параллельный итерируемый объект.
- returns
true
- Definition Classes
- ParIterableLike → GenTraversableLike → GenTraversableOnce
def iterator: Splitter[T]
Создаёт новый итератор разбиения, используемый для перебора элементов этой коллекции.
По умолчанию этот метод реализован с помощью защищённого метода splitter.
- returns
итератор разбиения
- Definition Classes
- ParIterableLike → GenIterableLike
def last: T
Выбирает последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
Последний элемент этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableLike
- Exceptions thrown
NoSuchElementExceptionЕсли параллельный итерируемый объект пуст.
def lastOption: Option[T]
Возвращает последний элемент, если он есть.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
последний элемент этого параллельного итерируемого объекта, если он не пуст,
Noneесли он пуст.
- Definition Classes
- ParIterableLike → GenTraversableLike
def map[B](f: (A) ⇒ B): ParIterable[B]
Создаёт новую коллекцию, применяя функцию ко всем элементам этого параллельного итерируемого объекта.
- B
тип элементов возвращаемой коллекции.
- f
функция, которая применяется к каждому элементу.
- returns
новый параллельный итерируемый объект, полученный путём применения заданной функции
fк каждому элементу этого параллельного итерируемого объекта и сбора результатов.
- Definition Classes
- ParIterableLike → GenTraversableLike
def max: A
Находит наибольший элемент.
- returns
наибольший элемент этого параллельного итерируемого объекта.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Исключения
UnsupportedOperationException, если этот параллельный итерируемый объект пуст.
def maxBy[B](f: (A) ⇒ B): A
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- returns
первый элемент этого параллельного итерируемого объекта с наибольшим значением, измеренным функцией f.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Исключения
UnsupportedOperationException, если этот параллельный итерируемый объект пуст.
def min: A
Находит наименьший элемент.
- returns
наименьший элемент этого параллельного итерируемого объекта
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Исключения
UnsupportedOperationException, если этот параллельный итерируемый объект пуст.
def minBy[B](f: (A) ⇒ B): A
Находит первый элемент, который даёт наименьшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- returns
первый элемент этого параллельного итерируемого объекта с наименьшим значением, измеренным функцией f.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Исключения
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).
- возвращает
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Definition Classes
- AnyRef
def newBuilder: Builder[T, ParIterable[T]]
Построитель, создающий экземпляры типа Traversable[A]
- Attributes
- protected[this]
- Definition Classes
- GenericParTemplate → GenericTraversableTemplate → HasNewBuilder
def newCombiner: Combiner[T, ParIterable[T]]
- Attributes
- protected[this]
- Definition Classes
- GenericParTemplate → HasNewCombiner
def nonEmpty: Boolean
Проверяет, является ли параллельное множество непустым.
- возвращает
trueесли параллельное множество содержит по крайней мере один элемент,falseв противном случае.
- Definition Classes
- ParIterableLike → GenTraversableOnce
final def notify(): Unit
Разбуждает один поток, ожидающий монитора объекта-получателя.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Примечание
не указано SLS в качестве члена AnyRef
final def notifyAll(): Unit
Разбуждает все потоки, ожидающие монитора объекта-получателя.
- Definition Classes
- AnyRef
- Annotations
- @native()
- Примечание
не указано SLS в качестве члена AnyRef
def par: ParIterable[T]
Возвращает параллельную реализацию этого набора.
Для большинства типов коллекций этот метод создает новую параллельную коллекцию, копируя все элементы. Для этих коллекций par занимает линейное время. Изменяемые коллекции в этой категории не создают изменяемую параллельную коллекцию, имеющую ту же базу данных, поэтому изменения в одной коллекции не будут отражены в другой.
Специфические коллекции (например, ParArray или mutable.ParHashMap) переопределяют это поведение по умолчанию, создавая параллельную коллекцию, которая использует ту же базу данных. Для этих коллекций par занимает постоянное или подлинейное время.
Все параллельные коллекции возвращают ссылку на себя.
- возвращает
параллельную реализацию этого набора
- Definition Classes
- ParIterableLike → CustomParallelizable → Parallelizable
def parCombiner: Combiner[T, ParIterable[T]]
Реализация по умолчанию par использует комбинатор, предоставленный этим методом, для создания новой параллельной коллекции.
- возвращает
комбинатор для параллельной коллекции типа
ParRepr
- Attributes
- protected[this]
- Definition Classes
- CustomParallelizable → Parallelizable
def partition(pred: (T) ⇒ Boolean): (ParIterable[T], ParIterable[T])
Разделяет это параллельное множество на две параллельные множества в соответствии с предикатом.
- pred
предикат для разделения.
- возвращает
пара параллельных множеств: первое параллельное множество состоит из всех элементов, которые удовлетворяют предикату
p, а второе параллельное множество состоит из всех элементов, которые не удовлетворяют ему. Относительный порядок элементов в результирующих параллельных множествах может не сохраняться.
- Definition Classes
- ParIterableLike → GenTraversableLike
def product: A
Умножает элементы этого множества.
- возвращает
произведение всех элементов в этом параллельном множестве чисел типа
Int. ВместоInt, любой другой типTс неявной реализациейNumeric[T]может использоваться как тип элементов параллельного множества и как тип результатаproduct. Примеры таких типов:Long,Float,Double,BigInt.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def reduce[U >: T](op: (U, U) ⇒ U): U
Сводит элементы этой последовательности, используя заданный ассоциативный бинарный оператор.
Порядок выполнения операций над элементами не определён и может быть не детерминированным.
Обратите внимание, что у этого метода другая сигнатура, чем у методов reduceLeft и reduceRight в трайте Traversable. Результатом сводки может быть только надтип параметра типа параллельного набора T.
- U
Параметр типа для бинарного оператора, являющийся надтипом
T.- op
Бинарный оператор, который должен быть ассоциативным.
- returns
Результат применения оператора сводки
opмежду всеми элементами, если набор не пуст.
- Definition Classes
- ParIterableLike → GenTraversableOnce
- Exceptions thrown
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, содержащее результат применения оператора сводки
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
- Exceptions thrown
UnsupportedOperationExceptionесли этот параллельный итерируемый набор пустой.
def reduceRightOption[U >: T](op: (T, U) ⇒ U): Option[U]
Опционально применяет бинарный оператор ко всем элементам этого параллельного итерируемого набора, справа налево.
Примечание: не будет завершаться для бесконечно больших коллекций.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен или оператор не ассоциативен и не коммутативен.
- op
бинарный оператор.
- returns
значение типа Option, содержащее результат
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: (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
Определяет префикс представления этого объекта.
- 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]
Преобразует это параллельное итерируемое множество в индексированную последовательность.
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
индексированная последовательность, содержащая все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def toIterable: ParIterable[T]
Преобразует это параллельное итерируемое множество в итерируемую коллекцию. Обратите внимание, что выбор целевого Iterable в этой реализации по умолчанию ленивый, так как это TraversableOnce может быть ленивым и невычисленным (т. е. это может быть итератор, который можно просмотреть только один раз).
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
a
Iterableсодержащий все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterable → ParIterableLike → GenTraversableOnce
def toIterator: scala.Iterator[T]
Возвращает итератор по элементам в этом параллельном итерируемом множестве. Вернет тот же итератор, если этот экземпляр уже является итератором.
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
итератор, содержащий все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def toList: List[T]
Преобразует это параллельное итерируемое множество в список.
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
список, содержащий все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def toMap[T, U]: collection.Map[T, U]
Преобразует это параллельное итерируемое множество в карту. Этот метод недоступен, если элементы не являются членами Tuple2, при этом каждый ((T, U)) становится парой ключ-значение в карте. Повторяющиеся ключи будут перезаписаны последующими ключами: если это неупорядоченная коллекция, то какой ключ находится в результирующей карте — не определено.
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
карта типа
immutable.Map[T, U]содержащая все пары ключ/значение типа(T, U)этого параллельного итерируемого множества.
- Определяющие классы
- ParIterableLike → GenTraversableOnce
def toParArray: ParArray[T]
- Неявный
- Этот член добавлен неявным преобразованием из ParIterable[T] в CollectionsHaveToParArray[ParIterable[T], T] выполняемым методом CollectionsHaveToParArray в scala.collection.parallel. Это преобразование будет происходить только в том случае, если в области видимости имеется неявное значение типа (ParIterable[T]) ⇒ GenTraversableOnce[T].
- Определяющие классы
- CollectionsHaveToParArray
def toParCollection[U >: T, That](cbf: () ⇒ Combiner[U, That]): That
- Атрибуты
- protected
- Определяющие классы
- ParIterableLike
def toParMap[K, V, That](cbf: () ⇒ Combiner[(K, V), That])(implicit ev: <:<[T, (K, V)]): That
- Атрибуты
- protected
- Определяющие классы
- ParIterableLike
def toSeq: ParSeq[T]
Преобразует это параллельное итерируемое множество в последовательность. Как и toIterable, она ленивая в этой реализации по умолчанию, так как это TraversableOnce может быть ленивым и невычисленным.
Примечание: не будет завершаться для бесконечных коллекций.
- возвращает
последовательность, содержащая все элементы этого параллельного итерируемого множества.
- Определяющие классы
- ParIterable → ParIterableLike → GenTraversableOnce
def toSet[U >: T]: immutable.ParSet[U]
Преобразует это параллельное итерируемое множество в множество.
Примечание: не завершится для бесконечных коллекций.
- returns
множество, содержащее все элементы этого параллельного итерируемого множества.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toStream: Stream[T]
Преобразует это параллельное итерируемое множество в поток.
- returns
поток, содержащий все элементы этого параллельного итерируемого множества.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toString(): String
Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.
- returns
строковое представление объекта.
- Definition Classes
- ParIterableLike → AnyRef → Any
def toTraversable: GenTraversable[T]
Преобразует это параллельное итерируемое множество в неопределённое итерируемое множество. Вернёт ту же коллекцию, если этот экземпляр уже является итерируемым.
Примечание: не завершится для бесконечных коллекций.
- returns
итерируемое множество, содержащее все элементы этого параллельного итерируемого множества.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def toVector: Vector[T]
Преобразует это параллельное итерируемое множество в вектор.
Примечание: не завершится для бесконечных коллекций.
- returns
вектор, содержащий все элементы этого параллельного итерируемого множества.
- Definition Classes
- ParIterableLike → GenTraversableOnce
def transpose[B](implicit asTraversable: (T) ⇒ GenTraversableOnce[B]): ParIterable[ParIterable[B]]
Транспонирует эту коллекцию итерируемых множеств в коллекцию коллекций.
Тип результирующей коллекции определяется статическим типом коллекции. Например:
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
тип элементов каждой итерируемой коллекции.
- asTraversable
неявное преобразование, которое утверждает, что тип элемента этой коллекции является
Traversable.- returns
двумерная коллекция коллекций, в которой n-я строка содержит n-й столбец этой коллекции.
- Definition Classes
- GenericTraversableTemplate
- Annotations
- @migration
- Migration
(Изменено в версии 2.9.0)
transposeвыбрасываетIllegalArgumentExceptionесли коллекции не имеют одинаковый размер.- Exceptions thrown
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
неявное преобразование, которое утверждает, что тип элемента этой коллекции является парой.
- returns
пара коллекций, содержащих первую, соответственно вторую половину каждой пары элементов этой коллекции.
- Definition Classes
- 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
явное преобразование, которое утверждает, что тип элементов этой коллекции является тройкой.
- returns
тройку коллекций, содержащих первый, второй и соответственно третий член каждого элемента тройки этой коллекции.
- Definition Classes
- GenericTraversableTemplate
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
final def wait(arg0: Long): Unit
def withFilter(pred: (T) ⇒ Boolean): ParIterable[T]
- Definition Classes
- ParIterableLike
def wrap[R](body: ⇒ R): NonDivisible[R]
- Attributes
- protected
- Definition Classes
- ParIterableLike
def zip[B](that: GenIterable[B]): ParIterable[(A, B)]
Возвращает параллельную итерируемую последовательность, образованную из этой параллельной итерируемой последовательности и другой итерируемой коллекции, комбинируя соответствующие элементы в парах. Если одна из двух коллекций длиннее другой, оставшиеся элементы игнорируются.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
- B
тип второй половины возвращенных пар
- that
Итерируемая последовательность, предоставляющая вторую половину каждой результирующей пары
- returns
новая параллельная итерируемая последовательность, содержащая пары, состоящие из соответствующих элементов этой параллельной итерируемой последовательности и
that. Длина возвращаемой коллекции является минимальным из длин этой параллельной итерируемой последовательности иthat.
- Definition Classes
- ParIterableLike → GenIterableLike
def zipAll[B](that: Iterable[B], thisElem: A, thatElem: B): ParIterable[(A, B)]
Возвращает параллельную итерируемую последовательность, образованную из этой параллельной итерируемой последовательности и другой итерируемой коллекции, комбинируя соответствующие элементы в парах. Если одна из двух коллекций короче другой, используются заполняющие элементы для расширения более короткой коллекции до длины более длинной.
Примечание: может возвращать разные результаты при разных запусках, если тип базовой коллекции не упорядочен.
- B
тип второй половины возвращенных пар
- that
Итерируемая последовательность, предоставляющая вторую половину каждой результирующей пары
- thisElem
элемент, используемый для заполнения результата, если эта параллельная итерируемая последовательность короче
that.- thatElem
элемент, используемый для заполнения результата, если
thatкороче этой параллельной итерируемой последовательности.- returns
новая параллельная итерируемая последовательность, содержащая пары, состоящие из соответствующих элементов этой параллельной итерируемой последовательности и
that. Длина возвращаемой коллекции — максимальная из длин этой параллельной итерируемой последовательности иthat. Если эта параллельная итерируемая последовательность корочеthat, значенияthisElemиспользуются для заполнения результата. Еслиthatкороче этой параллельной итерируемой последовательности, значенияthatElemиспользуются для заполнения результата.
- Definition Classes
- ParIterableLike → GenIterableLike
def zipWithIndex: ParIterable[(A, Int)]
Объединяет это параллельное итерируемое множество со своими индексами.
Примечание: может возвращать разные результаты для разных запусков, если только тип базового набора не упорядочен.
- возвращает
Новое параллельное итерируемое множество, содержащее пары, состоящие из всех элементов этого параллельного итерируемого множества, сопоставленных с их индексом. Индексы начинаются с
0.
- Определяющие классы
- ParIterableLike → GenIterableLike
List("a", "b", "c").zipWithIndex = List(("a", 0), ("b", 1), ("c", 2))
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/mutable/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