Spec-Zone.ru › Scala 2.12 Library

Трейт scala.collection.parallel.ParIterable

Компаньон объект ParIterable

trait ParIterable[+T] extends GenIterable[T] with GenericParTemplate[T, ParIterable] with ParIterableLike[T, ParIterable[T], scala.Iterable[T]]

Шаблонный трейт для параллельных итерируемых коллекций.

Это базовый трейт для параллельных коллекций Scala. Он определяет поведение, общее для всех параллельных коллекций. Конкретные параллельные коллекции должны унаследовать этот трейт и ParIterable если они хотят определить специфические фабрики комбинирователей.

Параллельные операции реализуются с помощью алгоритмов "разделяй и властвуй", которые хорошо параллелизируются. Основная идея заключается в разделении коллекции на более мелкие части до тех пор, пока они не станут достаточно малыми для последовательной обработки.

Все параллельные операции реализованы как задачи в этом трейте. Задачи опираются на концепцию разделителей, которые расширяют итераторы. Каждая параллельная коллекция определяет:

def splitter: IterableSplitter[T]

которая возвращает экземпляр IterableSplitter[T], который является подтипом Splitter[T]. У разделителей есть метод remaining для проверки оставшегося числа элементов и метод split, который определяется разделителями. Метод split делит итерируемых разделителями на непересекающиеся подмножества:

def split: Seq[Splitter]

который разбивает разделитель на последовательность непересекающихся подразделителей. Как правило, это очень быстрая операция, которая просто создаёт оболочки вокруг коллекции-приёмника. Это можно повторять рекурсивно.

Задачи планируются для выполнения через объект scala.collection.parallel.TaskSupport, который можно изменить через tasksupport установщик коллекции.

Метод newCombiner генерирует новый комбинирователь. Комбинирователи являются расширением билдеров. Они предоставляют метод combine который объединяет два комбинирователя и возвращает комбинирователь, содержащий элементы обоих комбинирователей. Этот метод может быть реализован путём агрессивного копирования всех элементов в новый комбинирователь или путём ленивой привязки их результатов. Рекомендуется избегать копирования всех элементов по соображениям производительности, хотя эта стоимость может быть незначительной в зависимости от использования. Стандартные параллельные комбинирователи коллекций избегают копирования при слиянии результатов, полагаясь либо на двухэтапное ленивое построение, либо на свойства определённой структуры данных.

Методы:

def seq: Sequential
def par: Repr

производят последовательную или параллельную реализацию коллекции соответственно. Метод 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 реализован как операция постоянного времени для параллельных коллекций, и параллельные операции коллекций полагаются на это предположение.

Передаваемые в определённые операции высшие-порядковые функции могут содержать побочные эффекты. Поскольку реализации массовых операций могут быть не последовательными, это означает, что побочные эффекты могут быть непредсказуемыми и могут привести к гонкам данных, тупикам или недействительности состояния, если не принять мер предосторожности. Программист должен либо избежать использования побочных эффектов, либо использовать какую-либо синхронизацию при доступе к изменяемым данным.

T

тип элементов коллекции

Source
ParIterable.scala
Since

2.9

Линейные супертипы
Известные подклассы

Тип членов

тип 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

Создает копию объекта-получателя.

По умолчанию реализация метода clone зависит от платформы.

returns

копия объекта-получателя.

Атрибуты
protected[lang]
Definition Classes
AnyRef
Аннотации
@throws( ... ) @native()
Примечание

не указано SLS в качестве члена AnyRef

def collect[B](pf: PartialFunction[A, B]): ParIterable[B]

[use case]

Создаёт новую коллекцию, применяя частичную функцию ко всем элементам этого параллельного итерируемого объекта, для которых функция определена.

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

[use case]

Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет заданный массив xs не более чем len элементами этого параллельного итерируемого объекта, начиная с позиции start. Копирование прекратится, когда будет достигнут конец текущего параллельного итерируемого объекта, или конец целевого массива, или будет скопировано len элементов.

Примечание: не завершится для коллекций бесконечного размера.

xs

массив, который нужно заполнить.

start

начальный индекс.

len

максимальное количество элементов для копирования.

Definition Classes
ParIterableLike → GenTraversableOnce
Полная сигнатура

def copyToArray(xs: Array[A], start: Int): Unit

[use case]

Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет заданный массив xs значениями этого параллельного итерируемого объекта, начиная с индекса start. Копирование прекратится, когда будет достигнут конец текущего параллельного итерируемого объекта, или конец целевого массива.

Примечание: не завершится для коллекций бесконечного размера.

xs

массив, который нужно заполнить.

start

начальный индекс.

Definition Classes
ParIterableLike → GenTraversableOnce
Полная сигнатура

def copyToArray(xs: Array[A]): Unit

[use case]

Копирует элементы этого параллельного итерируемого объекта в массив. Заполняет заданный массив 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]

[use case]

Создаёт новую коллекцию, применяя функцию ко всем элементам этого параллельного итерируемого объекта и используя элементы полученных коллекций.

Например:

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]

[use case]

Преобразует этот параллельный итерируемый объект перечисляемых коллекций в параллельный итерируемый объект, образованный элементами этих перечисляемых коллекций.

Тип результирующей коллекции будет определяться статическим типом параллельного итерируемого объекта. Например:

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[_]

Возвращает представление класса объекта во время выполнения.

возвращает

объект класса, соответствующий типу получателя во время выполнения.

Классы-определения
AnyRef → Any
Аннотации
@native()

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.

возвращает

значение хэш-кода для этого объекта.

Классы-определения
AnyRef → Any
Аннотации
@native()

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]

[use case]

Создаёт новую коллекцию, применяя функцию ко всем элементам этого параллельного итерируемого объекта.

B

тип элементов возвращаемой коллекции.

f

функция, применяемая к каждому элементу.

возвращает

новое параллельное итерируемое множество, полученное путём применения заданной функции f к каждому элементу этого параллельного итерируемого объекта и сбора результатов.

Классы определений
ParIterableLike → GenTraversableLike
Полная подпись

def max: A

[use case]

Находит наибольший элемент.

returns

наибольший элемент этого параллельного итерируемого объекта.

Definition Classes
ParIterableLike → GenTraversableOnce
Полная подпись
Exceptions thrown

UnsupportedOperationException если этот параллельный итерируемый объект пустой.

def maxBy[B](f: (A) ⇒ B): A

[use case]

Находит первый элемент, который дает наибольшее значение, измеренное функцией f.

B

Тип результата функции f.

f

Функция измерения.

returns

первый элемент этого параллельного итерируемого объекта с наибольшим значением, измеренным функцией f.

Definition Classes
ParIterableLike → GenTraversableOnce
Полная подпись
Exceptions thrown

UnsupportedOperationException если этот параллельный итерируемый объект пустой.

def min: A

[use case]

Находит наименьший элемент.

returns

наименьший элемент этого параллельного итерируемого объекта

Definition Classes
ParIterableLike → GenTraversableOnce
Полная подпись
Exceptions thrown

UnsupportedOperationException если этот параллельный итерируемый объект пустой.

def minBy[B](f: (A) ⇒ B): A

[use case]

Находит первый элемент, который дает наименьшее значение, измеренное функцией 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

[use case]

Произведение элементов этого набора.

возвращает

произведение всех элементов в этом параллельном наборе чисел типа 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

[use case]

Проверяет, содержит ли другая итерируемая коллекция те же элементы в том же порядке, что и эта параллельная итерируемая коллекция.

Примечание: может возвращать разные результаты при разных запусках, если только тип базовой коллекции не упорядочен.

Примечание: не будет завершаться для бесконечно больших коллекций.

that

коллекция для сравнения.

returns

true, если обе коллекции содержат одинаковые элементы в том же порядке, false в противном случае.

Definition Classes
ParIterableLike → GenIterableLike
Полная сигнатура

def scan(z: T)(op: (T, T) ⇒ T): ParIterable[T]

[use case]

Вычисляет префиксное сканирование элементов коллекции.

Примечание: нейтральный элемент 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

[use case]

Суммирует элементы этого набора.

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

scala.collection.parallel.TaskSupport

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

scala.collection.parallel.TaskSupport

def to[Col[_]]: Col[A]

[use case]

Преобразует этот параллельный итерируемый набор в другой, копируя все элементы.

Примечание: не будет завершаться для наборов бесконечного размера.

Col

Тип коллекции для построения.

returns

новая коллекция, содержащая все элементы этого параллельного итерируемого набора.

Definition Classes
ParIterableLike → GenTraversableOnce
Полная сигнатура

def toArray: Array[A]

[use case]

Преобразует этот параллельный итерируемый набор в массив.

Примечание: не будет завершаться для наборов бесконечного размера.

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]

[use case]

Преобразует этот параллельный итерируемый объект в словарь. Этот метод недоступен, если элементы не являются членами 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

Классы-определения
AnyRef
Аннотации
@throws( ... ) @native()

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API