Spec-Zone.ru › Scala 3.2

Trait IndexedBuffer.IndexedBuffer

Объект-компаньон • Исходный код

trait IndexedBuffer[A] extends IndexedSeq[A] with IndexedSeqOps[A, IndexedBuffer, IndexedBuffer[A]] with Buffer[A] with IterableFactoryDefaults[A, IndexedBuffer]

Суперобъекты
26 типов
trait Buffer[A]
trait Shrinkable[A]
trait Growable[A]
trait Clearable
trait IndexedSeq[A]
trait IndexedSeqOps[A, IndexedBuffer, IndexedBuffer[A]]
trait IndexedSeq[A]
trait IndexedSeqOps[A, IndexedBuffer, IndexedBuffer[A]]
trait Seq[A]
trait SeqOps[A, IndexedBuffer, IndexedBuffer[A]]
trait Cloneable[IndexedBuffer[A]]
trait Cloneable
trait Seq[A]
trait Equals
trait SeqOps[A, IndexedBuffer, IndexedBuffer[A]]
trait PartialFunction[Int, A]
trait Int => A
trait Iterable[A]
trait Iterable[A]
trait IterableFactoryDefaults[A, IndexedBuffer]
trait IterableOps[A, IndexedBuffer, IndexedBuffer[A]]
trait IterableOnceOps[A, IndexedBuffer, IndexedBuffer[A]]
trait IterableOnce[A]
class Object
trait Matchable
class Any
Известные подтипы
class ArrayBuffer[A]
class ArrayDeque[A]
class Queue[A]
class Stack[A]

Конкретные методы

Исходный код
def filterInPlace(p: A => Boolean): IndexedBuffer.this.type

Исходный код
def flatMapInPlace(f: A => IterableOnce[A]): IndexedBuffer.this.type

Исходный код
override def iterableFactory: SeqFactory[IndexedBuffer]

Объект-компаньон этого изменяемого набора, предоставляющий различные методы фабрики.

Примечание

При реализации пользовательского типа коллекции и уточнении CC до нового типа, этот метод необходимо переопределить, чтобы вернуть фабрику для нового типа (в противном случае компилятор выдаст ошибку).

Классы определения Buffer -> IndexedSeq -> IndexedSeq -> Seq -> Seq -> Iterable -> Iterable -> IterableOps

Исходный код
def patchInPlace(from: Int, patch: IterableOnce[A], replaced: Int): IndexedBuffer.this.type

Наследованные методы

Исходный код
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]

Псевдоним для concat

Унаследовано от IterableOps

Исходный код
final override def ++:[B >: A](prefix: IterableOnce[B]): CC[B]

Псевдоним для prependedAll

Классы определения SeqOps -> IterableOps
Унаследовано от SeqOps

Исходный код
final def ++=(xs: IterableOnce[A]): Growable.this.type

Псевдоним для addAll

Унаследовано от Growable

Исходный код
final def ++=:(elems: IterableOnce[A]): Buffer.this.type

Псевдоним для prependAll

Унаследовано от Buffer

Исходный код
final def +:[B >: A](elem: B): CC[B]

Псевдоним для prepended.

Обратите внимание, что операторы с окончанием двоеточием ассоциативны справа (см. пример). Мемоническая подсказка для +: по сравнению с :+: двоеточие идёт к коллекции.

Унаследовано от SeqOps

Исходный код
final def +=(elem: A): Growable.this.type

Псевдоним для addOne

Унаследовано от Growable

Исходный код
final def +=:(elem: A): Buffer.this.type

Псевдоним для prepend

Унаследовано от Buffer

Исходный код
final def --=(xs: IterableOnce[A]): Shrinkable.this.type

Псевдоним для subtractAll

Унаследовано от Shrinkable

Исходный код
final def -=(elem: A): Shrinkable.this.type

Псевдоним для subtractOne

Унаследовано от Shrinkable

Исходный код
final def :+[B >: A](elem: B): CC[B]

Псевдоним для appended

Обратите внимание, что операторы с окончанием двоеточием ассоциативны справа (см. пример). Мемоническая подсказка для +: по сравнению с :+: двоеточие идёт к коллекции.

Унаследовано от SeqOps

Исходный код
final def :++[B >: A](suffix: IterableOnce[B]): CC[B]

Псевдоним для appendedAll

Унаследовано от SeqOps
END_OF_DOCUMENT_MARKER

Source
def addAll(xs: IterableOnce[A]): Growable.this.type

Добавляет все элементы, полученные из IterableOnce, в это изменяемое множество.

Параметры значения
xs

IterableOnce, производящий элементы для добавления.

Возвращает

само изменяемое множество.

Унаследовано от Growable

Source
def addOne(elem: A): Growable.this.type

Добавляет один элемент в это изменяемое множество.

Параметры значения
elem

элемент для добавления.

Возвращает

само изменяемое множество

Унаследовано от Growable

Source
final def addString(b: StringBuilder): StringBuilder

Добавляет все элементы этого набора в строковый буфер. Записанный текст состоит из строковых представлений (с точки зрения метода toString) всех элементов этого набора без разделительной строки.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> val h = a.addString(b)
h: StringBuilder = 1234
Параметры значения
b

строковый буфер, в который добавляются элементы.

Возвращает

строковый буфер b, в который были добавлены элементы.

Унаследовано от IterableOnceOps

Source
final def addString(b: StringBuilder, sep: String): StringBuilder

Добавляет все элементы этого набора в строковый буфер с использованием разделительной строки. Записанный текст состоит из строковых представлений (с точки зрения метода toString) всех элементов этого набора, разделенных строкой sep.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b, ", ")
res0: StringBuilder = 1, 2, 3, 4
Параметры значения
b

строковый буфер, в который добавляются элементы.

sep

разделительная строка.

Возвращает

строковый буфер b, в который были добавлены элементы.

Унаследовано от IterableOnceOps

Source
def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder

Добавляет все элементы этого набора в строковый буфер с использованием начальной, конечной и разделительных строк. Записанный текст начинается со строки start и заканчивается строкой end. Внутри строковые представления (с точки зрения метода toString) всех элементов этого набора разделяются строкой sep.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
Параметры значения
b

строковый буфер, в который добавляются элементы.

end

конечная строка.

sep

разделительная строка.

start

начальная строка.

Возвращает

строковый буфер b, в который были добавлены элементы.

Унаследовано от IterableOnceOps

Source
def andThen[C](k: PartialFunction[A, C]): PartialFunction[A, C]

Компонует эту частичную функцию с другой частичной функцией, которая применяется к результатам этой частичной функции.

Обратите внимание, что вызов isDefinedAt для полученной частичной функции может применить первую частичную функцию и выполнить её побочные эффекты. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.

Параметры типа
C

тип результата функции преобразования.

Параметры значения
k

функция преобразования

Возвращает

частичная функция с областью определения этой частичной функции, суженной другой частичной функцией, которая отображает аргументы x в k(this(x)).

Унаследовано от PartialFunction

Source
override def andThen[C](k: A => C): PartialFunction[A, C]

Компонует эту частичную функцию с функцией преобразования, которая применяется к результатам этой частичной функции.

Если тип выполнения функции является PartialFunction, используется другой метод andThen (обратите внимание на его предостережения).

Параметры типа
C

тип результата функции преобразования.

Параметры значения
k

функция преобразования

Возвращает

частичная функция с областью определения этой частичной функции, возможно, суженной указанной функцией, которая отображает аргументы x в k(this(x)).

Классы определения PartialFunction -> Function1
Унаследовано от PartialFunction

Source
final def append(elem: A): Buffer.this.type

Добавляет заданные элементы в этот буфер.

Параметры значения
elem

элемент для добавления.

Унаследовано от Buffer

Source
final def appendAll(xs: IterableOnce[A]): Buffer.this.type

Добавляет элементы, содержащиеся в итерируемом объекте, в этот буфер.

Параметры значения
xs

итерируемый объект, содержащий добавляемые элементы.

Унаследовано от Buffer

Source
def appended[B >: A](elem: B): CC[B]

Копия этой последовательности с добавленным элементом.

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

Пример:

scala> val a = List(1)
a: List[Int] = List(1)

scala> val b = a :+ 2
b: List[Int] = List(1, 2)

scala> println(a)
List(1)
Параметры типа
B

тип элемента возвращаемой последовательности.

Параметры значения
elem

добавляемый элемент

Возвращает

новая последовательность, состоящая из всех элементов этой последовательности, за которыми следует value.

Унаследовано от SeqOps

Source
def appendedAll[B >: A](suffix: IterableOnce[B]): CC[B]

Возвращает новую последовательность, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элемента последовательности — наиболее общий суперкласс, охватывающий типы элементов двух операндов.

Параметры типа
B

тип элемента возвращаемого набора.

Параметры значения
suffix

итерируемый объект для добавления.

Возвращает

новый набор типа CC[B], который содержит все элементы этой последовательности, за которыми следуют все элементы suffix.

Унаследовано от SeqOps

Source
def apply(i: Int): A

Получить элемент по указанному индексу. Данная операция предоставлена для удобства в Seq. Не следует предполагать её эффективность, если у вас нет IndexedSeq.

Унаследовано от SeqOps

Источник
def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: A1 => B1): B1

Применяет данную частичную функцию к заданному аргументу, если он содержится в области определения функции. Применяет функцию по умолчанию, если данная частичная функция не определена.

Обратите внимание, что выражение pf.applyOrElse(x, default) эквивалентно

if(pf isDefinedAt x) pf(x) else default(x)

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

- объединение частичных функций в цепочки orElse/andThen не приводит к чрезмерному вычислению apply/isDefinedAt - lift и unlift не вычисляют исходные функции дважды при каждом вызове - runWith позволяет эффективно объединять частичные функции в императивном стиле с применением действий в зависимости от условий

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

Параметры значения
default

функция по умолчанию

x

аргумент функции

Возвращает

результат применения данной функции или функции по умолчанию.

Унаследовано от PartialFunction

Источник
def canEqual(that: Any): Boolean

Метод, который должен вызываться из каждой хорошо спроектированной функции equals, которая может быть переопределена в подклассе. См. Программирование на Scala, глава 28 для обсуждения и проектирования.

Параметры значения
that

значение, на предмет возможного равенства

Возвращает

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

Унаследовано от Seq

Источник
def clear(): Unit

Очищает содержимое коллекции. После этой операции коллекция становится пустой.

Унаследовано от Clearable

Источник
override def clone(): C

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

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

Возвращает

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

Примечание

не специфицируется SLS как член AnyRef

Классы определения SeqOps -> Cloneable -> Object
Унаследовано от SeqOps

Источник
def collect[B](pf: PartialFunction[A, B]): CC[B]

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

Параметры типа
B

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

Параметры значения
pf

частичная функция, которая фильтрует и отображает итерируемую коллекцию.

Возвращает

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

Унаследовано от IterableOps

Источник
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

Находит первый элемент коллекции, для которого определена данная частичная функция, и применяет к нему эту частичную функцию.

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

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

Параметры значения
pf

частичная функция

Возвращает

значение Option, содержащее результат применения pf к первому значению, для которого она определена, или None , если таковое отсутствует.

Пример

Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)

Унаследовано от IterableOnceOps

Источник
def combinations(n: Int): Iterator[C]

Итерирует по комбинациям. _Комбинация_ длины n — это подпоследовательность исходной последовательности, элементы которой взяты в порядке. Таким образом, "xy" и "yy" — это комбинации длины 2 из "xyy", но "yx" — нет. Если существует более одного способа генерации одной и той же подпоследовательности, будет возвращена только одна.

Например, "xyyy" имеет три различных способа генерации "xy", в зависимости от того, какой первый, второй или третий элемент "y" выбирается. Однако, поскольку все они идентичны, будет выбран только один. Какой из трёх будет выбран, является деталью реализации, которая не определена.

Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут форсироваться.

Возвращает

Итератор, который проходит по возможным комбинациям длины n элементов этой последовательности.

Пример

"abbbc".combinations(2) = Iterator(ab, ac, bb, bc)

Унаследовано от SeqOps

Источник
def compose[R](k: PartialFunction[R, Int]): PartialFunction[R, B]

Компонует другую частичную функцию k с этой частичной функцией таким образом, что эта частичная функция применяется к результатам k.

Обратите внимание, что вызов isDefinedAt на полученной частичной функции может применить первую частичную функцию и выполнить её побочный эффект. Для повышения эффективности рекомендуется использовать applyOrElse вместо isDefinedAt или apply.

Параметры типа
R

тип параметра функции преобразования.

Параметры значения
k

функция преобразования

Возвращает

частичная функция с областью определения другой частичной функции, суженной этой частичной функцией, которая отображает аргументы x в this(k(x)).

Унаследовано от PartialFunction

Источник
def compose[A](g: A => Int): A => R

Компонует две функции Function1 в новую Function1, где эта функция применяется последней.

Параметры типа
A

тип, к которому может быть применена функция g

Параметры значения
g

функция A => T1

Возвращает

новая функция f такая, что f(x) == apply(g(x))

Унаследовано от Function1

Источник
final override def concat[B >: A](suffix: IterableOnce[B]): CC[B]

Возвращает новую последовательность, содержащую элементы левого операнда, за которыми следуют элементы правого операнда. Тип элемента последовательности — это наиболее специфичный суперкласс, охватывающий типы элементов обоих операндов.

Тип параметров
B

тип элементов возвращаемого набора.

Параметры значений
suffix

объект для добавления.

Возвращает

новая последовательность, содержащая все элементы этой последовательности, за которыми следуют все элементы suffix.

Определяющие классы SeqOps -> IterableOps
Унаследовано от SeqOps

Источник
def contains[A1 >: A](elem: A1): Boolean

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

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

Параметры значений
elem

элемент для проверки.

Возвращает

true если в этой последовательности есть элемент, равный (как определено ==) elem, false в противном случае.

Унаследовано от SeqOps

Источник
def containsSlice[B >: A](that: Seq[B]): Boolean

Проверяет, содержит ли эта последовательность заданную последовательность в качестве слайса.

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

Параметры значений
that

последовательность для проверки

Возвращает

true если эта последовательность содержит слайс с теми же элементами, что и that, в противном случае false.

Унаследовано от SeqOps

Источник
def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет заданный массив xs начиная с индекса start не более чем len элементами этой коллекции.

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

Тип параметров
B

тип элементов массива.

Параметры значений
len

максимальное количество копируемых элементов.

start

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

xs

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

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

Унаследовано от IterableOnceOps

Источник
def copyToArray[B >: A](xs: Array[B], start: Int): Int

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.

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

Тип параметров
B

тип элементов массива.

Параметры значений
start

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

xs

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

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

Унаследовано от IterableOnceOps

Источник
def copyToArray[B >: A](xs: Array[B]): Int

Копирует элементы в массив, возвращая количество записанных элементов.

Заполняет заданный массив xs начиная с индекса start значениями из этого набора.

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

Параметры типа
B

тип элементов массива.

Параметры значения
xs

массив для заполнения.

Возвращаемое значение

количество элементов, записанных в массив

Примечание

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

Унаследовано от IterableOnceOps

Источник
def corresponds[B](that: IterableOnce[B])(p: (A, B) => Boolean): Boolean

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

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

Параметры типа
B

тип элементов that

Параметры значения
p

предикат, который связывает элементы из обоих наборов

that

другой набор

Возвращаемое значение

true если оба набора имеют одинаковую длину и p(x, y) равно true для всех соответствующих элементов x этого итератора и y другого набора, в противном случае false

Унаследовано от IterableOnceOps

Источник
def corresponds[B](that: Seq[B])(p: (A, B) => Boolean): Boolean

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

Параметры типа
B

тип элементов that

Параметры значения
p

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

that

другая последовательность

Возвращаемое значение

true если обе последовательности имеют одинаковую длину и p(x, y) равно true для всех соответствующих элементов x этой последовательности и y другой последовательности, в противном случае false

Унаследовано от SeqOps

Источник
def count(p: A => Boolean): Int

Подсчитывает количество элементов в наборе, которые удовлетворяют предикату.

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

Параметры значения
p

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

Возвращаемое значение

количество элементов, удовлетворяющих предикату p.

Унаследовано от IterableOnceOps

Источник
def diff[B >: A](that: Seq[B]): C

Вычисляет разность между этой последовательностью и другой последовательностью.

Параметры значения
that

последовательность элементов, которые нужно удалить

Возвращаемое значение

новая последовательность, которая содержит все элементы этой последовательности, за исключением некоторых вхождений элементов, которые также присутствуют в that. Если значение элемента x встречается n раз в that, то первые n вхождений x не будут частью результата, но любые последующие вхождения будут.

Унаследовано от SeqOps

Источник
def distinct: C

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

Возвращает

новую последовательность, состоящую из всех элементов этой последовательности без дубликатов.

Унаследовано от SeqOps

Исходный код
def distinctBy[B](f: A => B): C

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

Параметры типа
B

тип элементов после преобразования функцией f

Параметры значения
f

Функция преобразования, результат которой используется для определения уникальности каждого элемента

Возвращает

новую последовательность, состоящую из всех элементов этой последовательности без дубликатов.

Унаследовано от SeqOps

Исходный код
override def drop(n: Int): C

Выбирает все элементы, кроме первых n.

Параметры значения
n

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

Возвращает

последовательность, состоящую из всех элементов этой последовательности, кроме первых n элементов, или же пустой последовательности, если эта последовательность содержит менее n элементов. Если n отрицательное, не удалять никаких элементов.

Классы-определения IndexedSeqOps -> IterableOps -> IterableOnceOps
Унаследовано от IndexedSeqOps

Исходный код
def dropInPlace(n: Int): Buffer.this.type

Унаследовано от Buffer

Исходный код
override def dropRight(n: Int): C

Выбирает все элементы, кроме последних n.

Параметры значения
n

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

Возвращает

последовательность, состоящую из всех элементов этой последовательности, кроме последних n элементов, или же пустой последовательности, если эта последовательность содержит менее n элементов. Если n отрицательное, не удалять никаких элементов.

Классы-определения IndexedSeqOps -> IterableOps
Унаследовано от IndexedSeqOps

Исходный код
def dropRightInPlace(n: Int): Buffer.this.type

Унаследовано от Buffer

Исходный код
def dropWhile(p: A => Boolean): C

Удаляет самую длинную префиксную часть элементов, удовлетворяющих предикату.

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

Параметры значения
p

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

Возвращает

самый длинный суффикс этой итерабельной коллекции, первый элемент которой не удовлетворяет предикату p.

Унаследовано от IterableOps

Исходный код
def dropWhileInPlace(p: A => Boolean): Buffer.this.type

Унаследовано от Buffer

Исходный код
def elementWise: ElementWiseExtractor[A, B]

Возвращает объект-экстрактор с методом unapplySeq, который извлекает каждый элемент данных последовательности.

Пример
val firstChar: String => Option[Char] = _.headOption
Seq("foo", "bar", "baz") match {
  case firstChar.unlift.elementWise(c0, c1, c2) =>
    println(s"$c0, $c1, $c2") // Output: f, b, b
}
Унаследовано от PartialFunction

Исходный код
override def empty: CC[A]

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

Возвращает

пустую итерабельную коллекцию типа C.

Классы-определения IterableFactoryDefaults -> IterableOps
Унаследовано от IterableFactoryDefaults

Исходный код
def endsWith[B >: A](that: Iterable[B]): Boolean

Проверяет, заканчивается ли эта последовательность заданной последовательностью.

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

Параметры значения
that

тестируемая последовательность

Возвращает

true если эта последовательность имеет that в качестве суффикса, false в противном случае.

Унаследовано от SeqOps

Исходный код
override def equals(o: Any): Boolean

Универсальный метод равенства, определённый в AnyRef.

Классы-определения Seq -> Equals -> Any
Унаследовано от Seq

Исходный код
def exists(p: A => Boolean): Boolean

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

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

Параметры значения
p

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

Возвращает

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

Унаследовано от IterableOnceOps

Исходный код
def filter(pred: A => Boolean): C

Выбирает все элементы этой итерабельной коллекции, которые удовлетворяют предикату.

Параметры значения
p

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

Возвращает

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

Унаследовано от IterableOps

Исходный код
def filterNot(pred: A => Boolean): C

Выбирает все элементы этой итерабельной коллекции, которые не удовлетворяют предикату.

Параметры значения
pred

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

Возвращает

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

Унаследовано от IterableOps
END_OF_DOCUMENT_MARKER

Source
def find(p: A => Boolean): Option[A]

Находит первый элемент коллекции, удовлетворяющий предикату, если таковой имеется.

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

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

Параметры значения
p

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

Возвращает

значение типа option, содержащее первый элемент в коллекции, удовлетворяющий p, или None если таковой не существует.

Унаследовано от IterableOnceOps

Source
def findLast(p: A => Boolean): Option[A]

Находит последний элемент последовательности, удовлетворяющий предикату, если таковой имеется.

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

Параметры значения
p

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

Возвращает

значение типа option, содержащее последний элемент в последовательности, удовлетворяющий p, или None если таковой не существует.

Унаследовано от SeqOps

Source
def flatMap[B](f: A => IterableOnce[B]): CC[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: String) => 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

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

Возвращает

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

Унаследовано от IterableOps

Source
def flatten[B](implicit asIterable: A => IterableOnce[B]): CC[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

тип элементов каждой коллекции.

Параметры значения
asIterable

явное преобразование, утверждающее, что тип элемента этой итерабельной коллекции является GenTraversable.

Возвращает

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

Унаследовано от IterableOps

Source
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

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

Порядок выполнения операций над элементами не определён и может быть не детерминированным.

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

Параметры типа
A1

параметр типа для бинарного оператора, надтип A.

Параметры значения
op

бинарный оператор, который должен быть ассоциативным.

z

нейтральный элемент для операции свёртки; может быть добавлен к результату произвольное количество раз и не должен изменять результат (например, Nil для конкатенации списков, 0 для сложения или 1 для умножения).

Возвращает

результат применения оператора свёртки op между всеми элементами и z, или z если эта коллекция пуста.

Унаследовано от IterableOnceOps

Исходный код
def foldLeft[B](z: B)(op: (B, A) => B): B

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

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

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

Параметры типа
B

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

z

начальное значение.

Возвращает

результат вставки op между последовательными элементами этой коллекции слева направо с начальным значением z слева: op(...op(z, x1), x2, ..., xn) где x1, ..., xn являются элементами этой коллекции. Возвращает z если эта коллекция пуста.

Унаследовано от IterableOnceOps

Исходный код
override def foldRight[B](z: B)(op: (A, B) => B): B

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

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

Параметры типа
B

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

z

начальное значение.

Возвращает

результат вставки op между последовательными элементами этой последовательности справа налево с начальным значением z справа: op(x1, op(x2, ... op(xn, z)...)) где x1, ..., xn являются элементами этой последовательности. Возвращает z если эта последовательность пуста.

Классы определения IndexedSeqOps -> IterableOnceOps
Унаследовано от IndexedSeqOps

Исходный код
def forall(p: A => Boolean): Boolean

Проверяет, выполняется ли предикат для всех элементов этой коллекции.

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

Параметры значения
p

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

Возвращает

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

Унаследовано от IterableOnceOps

Исходный код
def foreach[U](f: A => U): Unit

Применить f к каждому элементу для его побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.

Унаследовано от IterableOnceOps

Исходный код
protected def fromSpecific(coll: IterableOnce[A]): CC[A]

Определяет, как преобразовать заданную Iterable[A] в коллекцию типа C.

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

Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа, этот метод необходимо переопределить (иначе компилятор выдаст ошибку). В общем случае, когда C =:= CC[A], это можно сделать, смешав в себе scala.collection.IterableFactoryDefaults trait, который реализует метод с использованием iterableFactory.

Как видно из аннотации @uncheckedVariance, использование этого метода может быть небезопасным. Однако, пока он вызывается с Iterable[A], полученным из this коллекции (как это происходит в реализациях операций, где мы используем View[A] ), он безопасен.

Унаследовано от IterableFactoryDefaults

Источник
def groupBy[K](f: A => K): Map[K, C]

Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с некоторой функцией-дискриминатором.

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

Параметры типа
K

тип ключей, возвращаемых функцией-дискриминатором.

Параметры значения
f

функция-дискриминатор.

Возвращает

Карта от ключей к итерируемым коллекциям, которая удовлетворяет следующему инварианту:

(xs groupBy f)(k) = xs filter (x => f(x) == k)

То есть, каждый ключ k связан с итерируемой коллекцией тех элементов x, для которых f(x) равно k.

Унаследовано от IterableOps

Источник
def groupMap[K, B](key: A => K)(f: A => B): Map[K, CC[B]]

Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией-дискриминатором key. Каждый элемент в группе преобразуется в значение типа B с использованием функции value.

Эквивалентно groupBy(key).mapValues(_.map(f)), но более эффективно.

case class User(name: String, age: Int)

def namesByAge(users: Seq[User]): Map[Int, Seq[String]] =
  users.groupMap(_.age)(_.name)

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

Параметры типа
B

тип значений, возвращаемых функцией преобразования.

K

тип ключей, возвращаемых функцией-дискриминатором.

Параметры значения
f

функция преобразования элементов.

key

функция-дискриминатор.

Унаследовано от IterableOps

Источник
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]

Разделяет эту итерируемую коллекцию на карту в соответствии с функцией-дискриминатором key. Все значения, имеющие одинаковый дискриминатор, затем преобразуются функцией f и затем сводятся к одному значению с использованием функции reduce.

Эквивалентно groupBy(key).mapValues(_.map(f).reduce(reduce)), но более эффективно.

def occurrences[A](as: Seq[A]): Map[A, Int] =
  as.groupMapReduce(identity)(_ => 1)(_ + _)

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

Унаследовано от IterableOps

Источник
def grouped(size: Int): Iterator[C]

Разделяет элементы на итерируемые коллекции фиксированного размера.

Параметры значения
size

количество элементов в группе

Возвращает

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

См. также

scala.collection.Iterator, метод grouped

Унаследовано от IterableOps

Источник
override def hashCode(): Int

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

Алгоритм хэширования по умолчанию зависит от платформы.

Обратите внимание, что разрешается, чтобы у двух объектов были идентичные хэш-коды (o1.hashCode.equals(o2.hashCode)), но они при этом не были равны (o1.equals(o2) возвращает false). Вырожденная реализация могла бы всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true), то у них были идентичные хэш-коды (o1.hashCode.equals(o2.hashCode)). Поэтому, при переопределении этого метода, убедитесь, что поведение согласовано с методом equals.

Возвращает

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

Классы определения Seq -> Any
Унаследовано от Seq

Источник
override def head: A

Выбирает первый элемент этой последовательности.

Возвращает

первый элемент этой последовательности.

Исключения
NoSuchElementException

если последовательность пуста.

Классы определения IndexedSeqOps -> IterableOps
Унаследовано от IndexedSeqOps

Источник
override def headOption: Option[A]

Возвращает необязательный первый элемент.

Возвращает

первый элемент этой последовательности, если она не пуста, None если она пуста.

Классы определения IndexedSeqOps -> IterableOps
Унаследовано от IndexedSeqOps

Источник
def indexOf[B >: A](elem: B): Int

Находит индекс первого вхождения некоторого значения в этой последовательности.

Параметры типа
B

тип элемента elem.

Параметры значения
elem

значение элемента, которое необходимо найти.

Возвращает

индекс >= 0 первого элемента этой последовательности, который равен (как определено ==) elem, или -1, если такового не существует.

Унаследовано от SeqOps

Источник
def indexOf[B >: A](elem: B, from: Int): Int

Находит индекс первого вхождения некоторого значения в этой последовательности после или на определенном начальном индексе.

Параметры типа
B

тип элемента elem.

Параметры значения
elem

значение элемента, которое необходимо найти.

from

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

Возвращает

индекс >= from первого элемента этой последовательности, который равен (как определено ==) elem, или -1, если такового не существует.

Унаследовано от SeqOps

Источник
def indexOfSlice[B >: A](that: Seq[B]): Int

Находит первый индекс, где эта последовательность содержит заданную последовательность как срез.

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

Параметры значения
that

последовательность для проверки

Возвращает

первый индекс >= 0 такой, что элементы этой последовательности, начиная с этого индекса, совпадают с элементами последовательности that, или -1 если такой подпоследовательности не существует.

Унаследовано от SeqOps
END_OF_DOCUMENT_MARKER

Source
def indexOfSlice[B >: A](that: Seq[B], from: Int): Int

Находит первый индекс после или на стартовом индексе, где эта последовательность содержит заданную последовательность в качестве слайса.

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

Параметры значения
from

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

that

последовательность для проверки

Возвращает

первый индекс >= from, такой, что элементы этой последовательности, начинающиеся с этого индекса, соответствуют элементам последовательности that, или -1, если такой подпоследовательности не существует.

Унаследовано от SeqOps

Source
def indexWhere(p: A => Boolean): Int

Находит индекс первого элемента, удовлетворяющего некоторому предикату.

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

Параметры значения
p

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

Возвращает

индекс >= 0 первого элемента этой последовательности, удовлетворяющего предикату p, или -1, если такового не существует.

Унаследовано от SeqOps

Source
def indexWhere(p: A => Boolean, from: Int): Int

Находит индекс первого элемента, удовлетворяющего некоторому предикату после или на некотором стартовом индексе.

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

Параметры значения
from

стартовый индекс

p

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

Возвращает

индекс >= from первого элемента этой последовательности, удовлетворяющего предикату p, или -1, если такового не существует.

Унаследовано от SeqOps

Source
def indices: Range

Создаёт диапазон всех индексов этой последовательности.

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

Возвращает

значение Range от 0 до значения, на единицу меньшего, чем длина этой последовательности.

Унаследовано от SeqOps

Source
def init: C

Начальная часть коллекции без её последнего элемента.

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

Унаследовано от IterableOps

Source
def inits: Iterator[C]

Итерируется по начальным частям (inits) этой коллекции. Первое значение будет этой коллекцией, а последнее — пустой коллекцией, а промежуточные значения будут результатами последовательных применений init.

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

Возвращает

итератор по всем начальным частям (inits) этой коллекции

Пример

List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)

Унаследовано от IterableOps
END_OF_DOCUMENT_MARKER

Source
def insert(idx: Int, elem: A): Unit

Вставляет новый элемент в заданный индекс в этот буфер.

Параметры значения
elem

элемент для вставки.

idx

индекс, куда вставляется новый элемент.

Исключения
IndexOutOfBoundsException

если индекс idx не находится в допустимом диапазоне 0 <= idx <= length.

Унаследовано от Buffer

Source
def insertAll(idx: Int, elems: IterableOnce[A]): Unit

Вставляет новые элементы в индекс idx. В отличие от метода update, этот метод не заменит элемент новым. Вместо этого он вставит новый элемент в индекс idx.

Параметры значения
elems

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

idx

индекс, куда будет вставлен новый элемент.

Исключения
IndexOutOfBoundsException

если idx выходит за пределы.

Унаследовано от Buffer

Source
def intersect[B >: A](that: Seq[B]): C

Вычисляет пересечение мультимножества между этой последовательностью и другой последовательностью.

Параметры значения
that

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

Возвращает

новая последовательность, содержащая все элементы этой последовательности, которые также присутствуют в that. Если значение элемента x встречается n раз в that, то первые n появлений x будут сохранены в результате, но все последующие появления будут пропущены.

Унаследовано от SeqOps

Source
def isDefinedAt(idx: Int): Boolean

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

Реализации методов apply и isDefinedAt преобразуют Seq[A] в PartialFunction[Int, A].

Параметры значения
idx

индекс для проверки

Возвращает

true если в этой последовательности есть элемент в позиции idx, false в противном случае.

Унаследовано от SeqOps

Source
override def isEmpty: Boolean

Проверяет, пуста ли последовательность.

Примечание: Реализации в дочерних классах, которые не являются многократно проходимыми, должны позаботиться о том, чтобы не потреблять никаких элементов, когда вызывается isEmpty.

Возвращает

true если последовательность не содержит элементов, false в противном случае.

Определения классов SeqOps -> IterableOnceOps
Унаследовано от SeqOps

Source
override def isTraversableAgain: Boolean

Проверяет, может ли этот итерируемый набор быть многократно пройден. Всегда true для Iterables и false для Iterators, если не переопределено.

Возвращает

true если он может быть многократно пройден, false в противном случае.

Определения классов IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Source
def iterator: Iterator[A]

Итератор может быть использован только один раз

Унаследовано от IndexedSeqOps

Source
override def knownSize: Int

Возвращает

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

Классы определения Buffer -> Growable -> IterableOnce
Унаследовано от Buffer

Исходный код
override def last: A

Выбирает последний элемент.

Возвращает

Последний элемент этой последовательности.

Исключение
NoSuchElementException

Если последовательность пустая.

Классы определения IndexedSeqOps -> IterableOps
Унаследовано от IndexedSeqOps

Исходный код
def lastIndexOf[B >: A](elem: B, end: Int): Int

Находит индекс последнего вхождения некоторого значения в этой последовательности перед или на заданном индексе окончания.

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

Параметры типа
B

тип элемента elem.

Значения параметров
elem

значение искомого элемента.

end

индекс окончания.

Возвращает

индекс <= end последнего элемента этой последовательности, равного (как определено ==) elem, или -1, если таковой не существует.

Унаследовано от SeqOps

Исходный код
def lastIndexOfSlice[B >: A](that: Seq[B]): Int

Находит последний индекс, где эта последовательность содержит заданную последовательность как срез.

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

Значения параметров
that

тестируемая последовательность

Возвращает

последний индекс, такой, что элементы этой последовательности, начиная с этого индекса, соответствуют элементам последовательности that, или -1, если такой подпоследовательности не существует.

Унаследовано от SeqOps

Исходный код
def lastIndexOfSlice[B >: A](that: Seq[B], end: Int): Int

Находит последний индекс перед или на заданном индексе окончания, где эта последовательность содержит заданную последовательность как срез.

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

Значения параметров
end

индекс окончания

that

тестируемая последовательность

Возвращает

последний индекс <= end, такой, что элементы этой последовательности, начиная с этого индекса, соответствуют элементам последовательности that, или -1, если такой подпоследовательности не существует.

Унаследовано от SeqOps

Исходный код
def lastIndexWhere(p: A => Boolean): Int

Находит индекс последнего элемента, удовлетворяющего некоторому предикату.

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

Значения параметров
p

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

Возвращает

индекс последнего элемента этой последовательности, удовлетворяющего предикату p, или -1, если таковой не существует.

Унаследовано от SeqOps

Исходный код
def lastIndexWhere(p: A => Boolean, end: Int): Int

Находит индекс последнего элемента, удовлетворяющего некоторому предикату перед или на заданном индексе окончания.

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

Значения параметров
p

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

Возвращает

индекс <= end последнего элемента этой последовательности, удовлетворяющего предикату p, или -1, если таковой не существует.

Унаследовано от SeqOps

Исходный код
def lastOption: Option[A]

Возвращает последний элемент, если он есть.

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

Возвращает

последний элемент этой итерируемой коллекции$ если она не пуста, None если она пуста.

Унаследовано от IterableOps

Исходный код
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Iterable]

Аналогично zip, но элементы в каждой коллекции не потребляются до тех пор, пока на возвращаемом LazyZip2 декораторе не будет вызвана строгая операция.

Вызовы lazyZip могут быть объединены для поддержки более высоких арительностей (до 4) без затрат на построение и деконструирование промежуточных кортежей.

val xs = List(1, 2, 3)
val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d)
// res == List(4, 8, 12)
Параметры типа
B

тип второго элемента в каждой возможной паре

Значения параметров
that

итерируемый объект, предоставляющий второй элемент каждой возможной пары

Возвращает

декоратор LazyZip2, позволяющий выполнять строгие операции над лениво вычисляемыми парами или цепочкой вызовов lazyZip. Также поддерживается неявное преобразование в Iterable[(A, B)].

Унаследовано от Iterable

Исходный код
def length: Int

Длина (количество элементов) последовательности. size — это псевдоним для length в коллекциях Seq.

Унаследовано от SeqOps

Исходный код
final override def lengthCompare(that: Iterable[_]): Int

Сравнивает длину этой последовательности с размером другого Iterable.

Значения параметров
that

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

Возвращает

Значение x, где

x <  0       if this.length <  that.size
x == 0       if this.length == that.size
x >  0       if this.length >  that.size

Метод в данной реализации напрямую не вызывает length или size; его время выполнения составляет O(this.length min that.size) вместо O(this.length + that.size). Метод следует переопределить, если вычисление size является недорогим, и knownSize возвращает -1.

Классы определения IndexedSeqOps -> SeqOps
Унаследовано от IndexedSeqOps

Исходный код
final override def lengthCompare(len: Int): Int

Сравнивает длину этой последовательности со значением теста.

Параметры значения
len

Тестовое значение, которое сравнивается с длиной.

Возвращает

Значение x, где

x <  0       if this.length <  len
x == 0       if this.length == len
x >  0       if this.length >  len

Метод, реализованный здесь, не вызывает length напрямую; его время выполнения равно O(length min len), а не O(length). Метод следует переопределять, если вычисление length является быстрым, а knownSize возвращает -1.

См. также

lengthIs

Классы определения IndexedSeqOps -> SeqOps
Унаследовано от IndexedSeqOps

Исходный код
final def lengthIs: SizeCompareOps

Возвращает значение, содержащее операции для сравнения длины этой последовательности со значением теста.

Эти операции реализованы с помощью lengthCompare(Int) и позволяют использовать более читаемый синтаксис:

this.lengthIs < len     // this.lengthCompare(len) < 0
this.lengthIs <= len    // this.lengthCompare(len) <= 0
this.lengthIs == len    // this.lengthCompare(len) == 0
this.lengthIs != len    // this.lengthCompare(len) != 0
this.lengthIs >= len    // this.lengthCompare(len) >= 0
this.lengthIs > len     // this.lengthCompare(len) > 0
Унаследовано от SeqOps

Исходный код
def lift: A => Option[B]

Преобразует эту частичную функцию в обычную функцию, возвращающую результат Option.

Возвращает

функцию, которая принимает аргумент x и возвращает Some(this(x)), если this определена для x, и None в противном случае.

См. также

Function.unlift

Унаследовано от PartialFunction

Исходный код
override def map[B](f: A => B): CC[B]

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

Параметры типа
B

тип элементов возвращаемой последовательности.

Параметры значения
f

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

Возвращает

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

Классы определения IndexedSeqOps -> IterableOps -> IterableOnceOps
Унаследовано от IndexedSeqOps

Исходный код
def mapInPlace(f: A => A): IndexedSeqOps.this.type

Изменяет эту изменяемую последовательность, применяя функцию ко всем элементам этой изменяемой последовательности.

Параметры значения
f

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

Возвращает

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

Унаследовано от IndexedSeqOps

Исходный код
def max[B >: A](implicit ord: Ordering[B]): A

Находит максимальный элемент.

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

Параметры типа
B

Тип, для которого определено упорядочение.

Параметры значения
ord

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

Возвращает

наибольший элемент этой коллекции относительно порядка ord.

Исключения
UnsupportedOperationException

если эта коллекция пустая.

Унаследовано от IterableOnceOps

Исходный код
def maxBy[B](f: A => B)(implicit cmp: Ordering[B]): A

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

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

Параметры типа
B

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

Параметры значения
cmp

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

f

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

Возвращает

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

Выбрасывает
UnsupportedOperationException

если эта коллекция пустая.

Унаследовано от IterableOnceOps

Исходный код
def maxByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

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

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

Параметры типа
B

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

Параметры значения
cmp

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

f

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

Возвращает

значение option, содержащее первый элемент этой коллекции с наибольшим значением, измеренным функцией f с учетом порядка cmp.

Унаследовано от IterableOnceOps

Исходный код
def maxOption[B >: A](implicit ord: Ordering[B]): Option[A]

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

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

Параметры типа
B

Тип, по которому определен порядок.

Параметры значения
ord

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

Возвращает

значение option, содержащее наибольший элемент этой коллекции с учетом порядка ord.

Унаследовано от IterableOnceOps

Исходный код
def min[B >: A](implicit ord: Ordering[B]): A

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

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

Параметры типа
B

Тип, по которому определен порядок.

Параметры значения
ord

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

Возвращает

наименьший элемент этой коллекции с учетом порядка ord.

Выбрасывает
UnsupportedOperationException

если эта коллекция пустая.

Унаследовано от IterableOnceOps

Исходный код
def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A

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

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

Параметры типа
B

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

Параметры значения
cmp

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

f

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

Возвращает

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

Выбрасывает
UnsupportedOperationException

если эта коллекция пустая.

Унаследовано от IterableOnceOps

Source
def minByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

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

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

Параметры типа
B

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

Параметры значения
cmp

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

f

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

Возвращает

значение option, содержащее первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно порядка cmp.

Унаследовано от IterableOnceOps

Source
def minOption[B >: A](implicit ord: Ordering[B]): Option[A]

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

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

Параметры типа
B

Тип, по которому определяется порядок.

Параметры значения
ord

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

Возвращает

значение option, содержащее наименьший элемент этой коллекции относительно порядка ord.

Унаследовано от IterableOnceOps

Source
final def mkString: String

Отображает все элементы этой коллекции в строке.

Делегирует addString, который может быть переопределен.

Возвращает

строковое представление этой коллекции. В результирующей строке строковые представления (с помощью метода toString) всех элементов этой коллекции следуют друг за другом без разделительной строки.

Унаследовано от IterableOnceOps

Source
final def mkString(sep: String): String

Отображает все элементы этой коллекции в строке с помощью разделительной строки.

Делегирует addString, который может быть переопределен.

Параметры значения
sep

разделительная строка.

Возвращает

строковое представление этой коллекции. В результирующей строке строковые представления (с помощью метода toString) всех элементов этой коллекции разделены строкой sep.

Пример

List(1, 2, 3).mkString("|") = "1|2|3"

Унаследовано от IterableOnceOps

Source
final def mkString(start: String, sep: String, end: String): String

Отображает все элементы этой коллекции в строке, используя начальную, конечную и разделительные строки.

Делегирует addString, который может быть переопределен.

Параметры значения
end

строка окончания.

sep

строка-разделитель.

start

строка начала.

Возвращает

строковое представление этого набора. Результирующая строка начинается со строки start и заканчивается строкой end. Внутри строковые представления (относительно метода toString) всех элементов этого набора разделены строкой sep.

Пример

List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"

Унаследовано от IterableOnceOps

Источник
protected def newSpecificBuilder: Builder[A, CC[A]]

Возвращает

строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList) реализовать этот метод возможно, но полученный Builder нарушит ленивость. Вследствие этого операции предпочтительно реализовывать с помощью fromSpecific вместо этого метода.

Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа этот метод необходимо переопределить (иначе компилятор выдаст ошибку). В общем случае, где C =:= CC[A], это можно сделать, добавив в класс трейт scala.collection.IterableFactoryDefaults, который реализует этот метод, используя iterableFactory.

Как показывает аннотация @uncheckedVariance, использование этого метода может быть небезопасным. Однако, пока возвращаемый билдер используется только для обработки значений A, взятых из this экземпляра, он безопасен.

Унаследовано от IterableFactoryDefaults

Источник
def nonEmpty: Boolean

Проверяет, не пуста ли коллекция.

Возвращает

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

Унаследовано от IterableOnceOps

Источник
def orElse[A1 <: Int, B1 >: A](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

Компонует эту частичную функцию с резервной частичной функцией, которая применяется в тех случаях, когда эта частичная функция не определена.

Параметры типа
A1

тип аргумента резервной функции

B1

тип результата резервной функции

Параметры значения
that

резервная функция

Возвращает

частичная функция, областью определения которой является объединение областей определения этой частичной функции и that. Результирующая частичная функция преобразует x в this(x), где this определена, и в that(x) в противном случае.

Унаследовано от PartialFunction

Источник
def padTo[B >: A](len: Int, elem: B): CC[B]

Копия этой последовательности с добавленными значениями элемента до достижения заданной целевой длины.

Параметры типа
B

тип элемента возвращаемой последовательности.

Параметры значения
elem

значение заполнения

len

целевая длина

Возвращает

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

Унаследовано от SeqOps

Источник
def padToInPlace(len: Int, elem: A): Buffer.this.type

Унаследовано от Buffer

Источник
def partition(p: A => Boolean): (C, C)

Пара, содержащая, во-первых, все элементы, удовлетворяющие предикату p, и, во-вторых, все элементы, не удовлетворяющие ему. Интересно тем, что разделяет коллекцию на две части.

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

Унаследовано от IterableOps

Source
def partitionMap[A1, A2](f: A => Either[A1, A2]): (CC[A1], CC[A2])

Применяет функцию f к каждому элементу коллекции и возвращает пару коллекций: первая содержит значения, возвращённые функцией f, заключённые в scala.util.Left, а вторая — значения, заключённые в scala.util.Right.

Пример:

val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
 case i: Int => Left(i)
 case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

тип элементов первой результирующей коллекции

A2

тип элементов второй результирующей коллекции

Параметры значения
f

'функция разделения', отображающая элементы этой коллекции в scala.util.Either

Возвращаемое значение

пара коллекций: первая содержит значения, возвращённые функцией f, заключённые в scala.util.Left, а вторая — значения, заключённые в scala.util.Right.

Унаследовано от IterableOps

Source
def patch[B >: A](from: Int, other: IterableOnce[B], replaced: Int): CC[B]

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

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

Параметры типа
B

тип элементов возвращаемой последовательности.

Параметры значения
from

индекс первого заменяемого элемента

other

заменяющая последовательность

replaced

количество элементов для удаления в исходной последовательности

Возвращаемое значение

новая последовательность, состоящая из всех элементов этой последовательности, за исключением того, что replaced элементы, начиная с from, заменены всеми элементами other.

Унаследовано от SeqOps

Source
def permutations: Iterator[C]

Итерируется по различным перестановкам.

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

Возвращаемое значение

Итератор, который проходит по различным перестановкам этой последовательности.

Пример

"abb".permutations = Iterator(abb, bab, bba)

Унаследовано от SeqOps

Source
def prepend(elem: A): Buffer.this.type

Добавляет элемент в начало этой изменяемой коллекции.

Параметры значения
elem

элемент для добавления.

Возвращаемое значение

сама изменяемая коллекция

Унаследовано от Buffer

Source
def prependAll(elems: IterableOnce[A]): Buffer.this.type

Унаследовано от Buffer

Source
override def prepended[B >: A](elem: B): CC[B]

Копия последовательности с добавленным элементом в начало.

Исходная последовательность не изменяется, поэтому необходимо сохранить результат.

Пример:

scala> val x = List(1)
x: List[Int] = List(1)

scala> val y = 2 +: x
y: List[Int] = List(2, 1)

scala> println(x)
List(1)
Параметры типа
B

тип элементов возвращаемой последовательности.

Параметры значения
elem

элемент, добавляемый в начало

Возвращаемое значение

новая последовательность, состоящая из value и всех элементов этой последовательности.

Классы определений IndexedSeqOps -> SeqOps
Унаследовано от IndexedSeqOps

Source
def prependedAll[B >: A](prefix: IterableOnce[B]): CC[B]

Как и :++, возвращает новую коллекцию, содержащую элементы левого операнда, за которыми следуют элементы правого операнда.

Отличается от :++ тем, что тип результирующей коллекции определяется правым операндом, а не левым. Мемоническая подсказка: двоеточие стоит со стороны типа новой коллекции.

Параметры типа
B

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

Параметры значения
prefix

итерируемый для добавления в начало.

Возвращаемое значение

новая последовательность, содержащая все элементы prefix, за которыми следуют все элементы этой последовательности.

Унаследовано от SeqOps

Source
def product[B >: A](implicit num: Numeric[B]): B

Вычисляет произведение элементов этой коллекции.

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

Параметры типа
B

тип результата операции *.

Параметры значения
num

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

Возвращаемое значение

произведение всех элементов этой коллекции по отношению к операции * в num.

Унаследовано от IterableOnceOps

Source
def reduce[B >: A](op: (B, B) => B): B

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

Порядок выполнения операций над элементами не определён и может быть не детерминированным.

Параметры типа
B

параметр типа для бинарной операции, надтипом A.

Параметры значения
op

Бинарная операция, которая должна быть ассоциативной.

Возвращаемое значение

результат применения оператора сводки op между всеми элементами, если коллекция не пуста.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

Унаследовано от IterableOnceOps

Source
def reduceLeft[B >: A](op: (B, A) => B): B

Применяет бинарную операцию ко всем элементам этой коллекции слева направо.

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

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

Параметры типа
B

тип результата бинарной операции.

Параметры значения
op

бинарная операция.

Возвращаемое значение

результат вставки op между последовательными элементами этой коллекции слева направо: op( op( ... op(x1, x2) ..., xn-1), xn), где x1, ..., xn — элементы этой коллекции.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

Унаследовано от IterableOnceOps

Source
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]

Необязательно применяет бинарную операцию ко всем элементам этой коллекции слева направо.

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

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

Параметры типа
B

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

Возвращает

значение типа Option, содержащее результат reduceLeft(op), если эта коллекция не пуста, None в противном случае.

Унаследовано от IterableOnceOps

Исходный код
def reduceOption[B >: A](op: (B, B) => B): Option[B]

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

Порядок выполнения операций над элементами не определен и может быть недетерминированным.

Параметры типа
B

параметр типа для бинарного оператора, являющийся надтипом A.

Параметры значения
op

Бинарный оператор, который должен быть ассоциативным.

Возвращает

Значение типа Option, содержащее результат применения оператора reduce op между всеми элементами, если коллекция не пуста, и None в противном случае.

Унаследовано от IterableOnceOps

Исходный код
def reduceRight[B >: A](op: (A, B) => B): B

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

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

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

Параметры типа
B

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

Возвращает

результат вставки op между последовательными элементами этой коллекции, идя справа налево: op(x1, op(x2, ..., op(xn-1, xn)...)), где x1, ..., xn являются элементами этой коллекции.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

Унаследовано от IterableOnceOps

Исходный код
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]

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

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

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

Параметры типа
B

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

Возвращает

значение типа Option, содержащее результат reduceRight(op), если эта коллекция не пуста, None в противном случае.

Унаследовано от IterableOnceOps

Исходный код
def remove(idx: Int, count: Int): Unit

Удаляет элемент в заданной позиции индекса. Занимает время, линейное относительно размера буфера.

Параметры значения
count

количество удаляемых элементов.

idx

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

Исключения
IllegalArgumentException

если count < 0.

IndexOutOfBoundsException

если индекс idx не находится в допустимом диапазоне 0 <= idx <= length - count (с count > 0).

Унаследовано от Buffer

Исходный код
def remove(idx: Int): A

Удаляет элемент в заданной позиции индекса.

Параметры значения
idx

индекс, который относится к удаляемому элементу.

Возвращает

элемент, который ранее находился по индексу idx.

Унаследовано от Buffer

Исходный код
override def reverse: C

Возвращает новую последовательность с элементами в обратном порядке.

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

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

Возвращает

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

Классы определения IndexedSeqOps -> SeqOps
Унаследовано от IndexedSeqOps

Исходный код
override def reverseIterator: Iterator[A]

Итератор, возвращающий элементы в обратном порядке.

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

Примечание: xs.reverseIterator эквивалентен xs.reverse.iterator, но может быть более эффективным.

Возвращает

итератор, возвращающий элементы этой последовательности в обратном порядке

Классы определения IndexedSeqOps -> SeqOps
Унаследовано от IndexedSeqOps

Исходный код
override protected def reversed: Iterable[A]

Классы определения IndexedSeqOps -> IterableOnceOps
Унаследовано от IndexedSeqOps

Исходный код
def runWith[U](action: A => U): A => Boolean

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

Обратите внимание, что выражение pf.runWith(action)(x) эквивалентно

if(pf isDefinedAt x) { action(pf(x)); true } else false

за исключением того, что runWith реализовано с помощью applyOrElse и, следовательно, потенциально более эффективно. Использование runWith позволяет избежать двойной оценки совпадений шаблонов и условий для литералов частичной функции.

Параметры значения
action

функция действия

Возвращает

функция, которая отображает аргументы x в isDefinedAt(x). Результирующая функция выполняет action(this(x)) там, где this определено.

См. также

applyOrElse.

Унаследовано от PartialFunction

Исходный код
def sameElements[B >: A](that: IterableOnce[B]): Boolean

Являются ли элементы этой коллекции одинаковыми (и в том же порядке), что и элементы that?

Унаследовано от SeqOps

Исходный код
def scan[B >: A](z: B)(op: (B, B) => B): CC[B]

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

Примечание: нейтральный элемент z может применяться более одного раза.

Тип параметров
B

тип элементов результирующего набора

Параметры значений
op

ассоциативный оператор для сканирования

z

нейтральный элемент для оператора op

Возвращает

новый итерируемый набор, содержащий префиксный сканирование элементов в этом итерируемом наборе

Унаследованно от IterableOps

Исходный код
def scanLeft[B](z: B)(op: (B, A) => B): CC[B]

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

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

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

Тип параметров
B

тип элементов в результирующем наборе

Параметры значений
op

бинарный оператор, применяемый к промежуточному результату и элементу

z

начальное значение

Возвращает

набор с промежуточными результатами

Унаследованно от IterableOps

Исходный код
def scanRight[B](z: B)(op: (A, B) => B): CC[B]

Создает набор, содержащий кумулятивные результаты применения оператора справа налево. Голова набора — последний кумулятивный результат.

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

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

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
Тип параметров
B

тип элементов в результирующем наборе

Параметры значений
op

бинарный оператор, применяемый к промежуточному результату и элементу

z

начальное значение

Возвращает

набор с промежуточными результатами

Унаследованно от IterableOps

Исходный код
override def search[B >: A](elem: B, from: Int, to: Int)(implicit ord: Ordering[B]): SearchResult

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

Последовательность должна быть отсортирована с тем же Ordering перед вызовом; в противном случае результаты не определены.

Параметры значений
elem

элемент для поиска.

from

индекс, с которого начинается поиск.

ord

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

to

индекс, следующий за тем, где поиск заканчивается.

Возвращает

значение Found содержащее индекс, соответствующий элементу в последовательности, или InsertionPoint, где элемент должен быть вставлен, если элемент не в последовательности.

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

Примечание

Если to <= from, пространство поиска пустое, и возвращается InsertionPoint в from

Классы определений IndexedSeqOps -> SeqOps
Унаследованно от IndexedSeqOps

Исходный код
override def search[B >: A](elem: B)(implicit ord: Ordering[B]): SearchResult

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

Последовательность должна быть отсортирована с тем же Ordering перед вызовом; в противном случае результаты не определены.

Параметры значений
elem

элемент для поиска.

ord

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

Возвращает

значение Found содержащее индекс, соответствующий элементу в последовательности, или InsertionPoint, где элемент должен быть вставлен, если элемент не в последовательности.

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

Классы определений IndexedSeqOps -> SeqOps
Унаследованно от IndexedSeqOps

Исходный код
def segmentLength(p: A => Boolean, from: Int): Int

Вычисляет длину самой длинной последовательности, начинающейся с определенного индекса и элементы которой удовлетворяют определенному предикату.

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

Параметры значений
from

индекс, с которого начинается поиск.

p

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

Возвращает

длину самой длинной последовательности в этой последовательности, начинающейся с индекса from, такая, что каждый элемент последовательности удовлетворяет предикату p.

Унаследованно от SeqOps

Исходный код
final def segmentLength(p: A => Boolean): Int

Вычисляет длину самой длинной последовательности, начинающейся с первого элемента, элементы которой удовлетворяют определенному предикату.

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

Параметры значений
p

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

Возвращает

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

Унаследованно от SeqOps

Исходный код
final override def size: Int

Размер этой последовательности.

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

Возвращает

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

Классы определений SeqOps -> IterableOnceOps
Унаследованно от SeqOps

Исходный код
final override def sizeCompare(that: Iterable[_]): Int

Сравнивает размер этой последовательности с размером другого Iterable.

Параметры значений
that

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

Возвращает

Значение x, где

x <  0       if this.size <  that.size
x == 0       if this.size == that.size
x >  0       if this.size >  that.size

Метод, как он реализован здесь, не вызывает size напрямую; его время выполнения — O(this.size min that.size) вместо O(this.size + that.size). Метод следует переопределять, если вычисление size является быстрым, и knownSize возвращает -1.

Классы определений SeqOps -> IterableOps
Унаследованно от SeqOps

Исходный код
final override def sizeCompare(otherSize: Int): Int

Сравнивает размер этой последовательности со значением.

Параметры значения
otherSize

тестовое значение, которое сравнивается с размером.

Возвращает

Значение x, где

x <  0       if this.size <  otherSize
x == 0       if this.size == otherSize
x >  0       if this.size >  otherSize

Метод, реализованный здесь, не вызывает size напрямую; его время выполнения составляет O(size min otherSize) вместо O(size). Метод следует переопределять, если вычисление size является быстрым, а knownSize возвращает -1.

См. также

sizeIs

Классы определения SeqOps -> IterableOps
Унаследовано от SeqOps

Исходный код
final def sizeIs: SizeCompareOps

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

Эти операции реализуются в терминах sizeCompare(Int) и позволяют использовать следующие более удобочитаемые выражения:

this.sizeIs < size     // this.sizeCompare(size) < 0
this.sizeIs <= size    // this.sizeCompare(size) <= 0
this.sizeIs == size    // this.sizeCompare(size) == 0
this.sizeIs != size    // this.sizeCompare(size) != 0
this.sizeIs >= size    // this.sizeCompare(size) >= 0
this.sizeIs > size     // this.sizeCompare(size) > 0
Унаследовано от IterableOps

Исходный код
override def slice(from: Int, until: Int): C

Выбирает интервал элементов. Возвращаемая последовательность состоит из всех элементов x, которые удовлетворяют инварианту:

from <= indexOf(x) < until
Параметры значения
from

наименьший индекс для включения из этой последовательности.

until

наименьший индекс для исключения из этой последовательности.

Возвращает

последовательность, содержащую элементы, большие или равные индексу from, простирающуюся до (но не включая) индекс until этой последовательности.

Классы определения IndexedSeqOps -> IterableOps -> IterableOnceOps
Унаследовано от IndexedSeqOps

Исходный код
def sliceInPlace(start: Int, end: Int): Buffer.this.type

Унаследовано от Buffer

Исходный код
def sliding(size: Int, step: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения их, как это делается в grouped.)

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

Параметры значения
size

количество элементов в группе

step

расстояние между первыми элементами последовательных групп

Возвращает

Итератор, генерирующий итерируемые наборы размера size, за исключением последнего элемента (который может быть единственным элементом), который будет меньше, если осталось меньше, чем size элементов, подлежащих группировке.

См. также

scala.collection.Iterator, метод sliding

Пример

List(1, 2, 3, 4, 5).sliding(2, 2) = Iterator(List(1, 2), List(3, 4), List(5))

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

Унаследовано от IterableOps

Исходный код
def sliding(size: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения их, как это делается в grouped.)

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

Параметры значения
size

количество элементов в группе

Возвращает

Итератор, генерирующий итерируемые наборы размера size, за исключением непустого набора с менее чем size элементами, который возвращает итератор, который генерирует исходный набор как единственный элемент.

См. также

scala.collection.Iterator, метод sliding

Пример

List().sliding(2) = empty iterator

List(1).sliding(2) = Iterator(List(1))

List(1, 2).sliding(2) = Iterator(List(1, 2))

List(1, 2, 3).sliding(2) = Iterator(List(1, 2), List(2, 3))

Унаследовано от IterableOps

Исходный код
def sortBy[B](f: A => B)(implicit ord: Ordering[B]): C

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

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

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

Сортировка является стабильной. То есть элементы, которые равны (как определено ord.compare ), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры типа
B

целевой тип преобразования f, и тип, где определено упорядочение ord.

Параметры значения
f

функция преобразования, сопоставляющая элементы с какой-либо другой областью B.

ord

упорядочение, предполагаемое в области B.

Возвращает

последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с порядком, где x < y , если ord.lt(f(x), f(y)).

См. также

scala.math.Ordering

Пример
val words = "The quick brown fox jumped over the lazy dog".split(' ')
// this works because scala.Ordering will implicitly provide an Ordering[Tuple2[Int, Char]]
words.sortBy(x => (x.length, x.head))
res0: Array[String] = Array(The, dog, fox, the, lazy, over, brown, quick, jumped)
Унаследовано от SeqOps

Исходный код
def sortInPlace[B >: A]()(implicit ord: Ordering[B]): IndexedSeqOps.this.type

Сортирует эту изменяемую последовательность по месту в соответствии с упорядочением.

Параметры значения
ord

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

Возвращает

измененный входной изменяемый набор, отсортированный в соответствии с упорядочением ord.

См. также

scala.collection.SeqOps.sorted

Унаследовано от IndexedSeqOps

Исходный код
def sortInPlaceBy[B](f: A => B)(implicit ord: Ordering[B]): IndexedSeqOps.this.type

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

См. также

scala.collection.SeqOps.sortBy

Унаследовано от IndexedSeqOps

Исходный код
def sortInPlaceWith(lt: (A, A) => Boolean): IndexedSeqOps.this.type

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

См. также

scala.collection.SeqOps.sortWith

Унаследовано от IndexedSeqOps

Исходный код
def sortWith(lt: (A, A) => Boolean): C

Сортирует эту последовательность в соответствии с функцией сравнения.

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

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

Сортировка является стабильной. То есть элементы, которые равны (как определено lt ), появляются в отсортированной последовательности в том же порядке, что и в исходной.

END_OF_DOCUMENT_MARKER
Параметры значения
lt

функция сравнения, которая проверяет, предшествует ли её первый аргумент второму аргументу в требуемом порядке.

Возвращает

последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с функцией сравнения lt.

Пример
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
Унаследовано от SeqOps

Исходный код
def sorted[B >: A](implicit ord: Ordering[B]): C

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

Сортировка стабильна. То есть, элементы, которые равны (как определено ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры значения
ord

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

Возвращает

последовательность, состоящая из элементов этой последовательности, отсортированных в соответствии с упорядочением ord.

См. также

scala.math.Ordering Примечание: даже при применении к представлению или ленивой коллекции, она всегда принуждает элементы.

Унаследовано от SeqOps

Исходный код
def span(p: A => Boolean): (C, C)

Разделяет эту итерируемую коллекцию на пару префикс/суффикс в соответствии с предикатом.

Примечание: c span p эквивалентно (но, возможно, более эффективно), чем (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.

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

Параметры значения
p

предикат проверки

Возвращает

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

Унаследовано от IterableOps

Исходный код
override def splitAt(n: Int): (C, C)

Разделяет эту итерируемую коллекцию на пару префикс/суффикс в заданной позиции.

Примечание: c splitAt n эквивалентно (но, возможно, более эффективно), чем (c take n, c drop n).

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

Параметры значения
n

позиция, в которой необходимо разделить.

Возвращает

пара итерируемых коллекций, состоящая из первых n элементов этой итерируемой коллекции и других элементов.

Классы-предки IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Исходный код
def startsWith[B >: A](that: IterableOnce[B], offset: Int): Boolean

Проверяет, содержит ли эта последовательность заданную последовательность в заданном индексе.

Примечание: Если оба объекта-получателя this и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.

Параметры значения
offset

индекс, где ищется последовательность.

that

последовательность для проверки

Возвращает

true , если последовательность that содержится в этой последовательности по индексу offset, иначе false.

Унаследовано от SeqOps

Исходный код
override def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S & EfficientSplit

Возвращает scala.collection.Stepper для элементов этой коллекции.

Stepper позволяет создавать Java поток для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, содержащих примитивные значения, Stepper можно использовать как итератор, который не упаковывает элементы.

Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элементов этой коллекции.

  • Для коллекций Int, Short, Byte или Char, возвращается scala.collection.IntStepper

  • Для коллекций Double или Float, возвращается scala.collection.DoubleStepper

  • Для коллекций Long возвращается scala.collection.LongStepper

  • Для любого другого типа элементов возвращается scala.collection.AnyStepper

Обратите внимание, что этот метод переопределен в подклассах, и тип возврата уточняется до S with EfficientSplit, например, scala.collection.IndexedSeqOps.stepper. Для Stepper с пометкой scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, в то время как обычные Stepper могут быть преобразованы только в последовательные потоки.

Классы-предки IndexedSeqOps -> IterableOnce
Унаследовано от IndexedSeqOps

Исходный код
def subtractAll(xs: IterableOnce[A]): Shrinkable.this.type

Удаляет все элементы, созданные итератором, из этой сжимаемой коллекции.

Параметры значения
xs

итератор, создающий удаляемые элементы.

Возвращает

саму сжимаемую коллекцию

Унаследовано от Shrinkable

Исходный код
def subtractOne(x: A): Buffer.this.type

Удаляет единственный элемент из этого буфера в его первом появлении. Если буфер не содержит этот элемент, он остается без изменений.

Параметры значения
x

элемент для удаления.

Возвращает

сам буфер

Унаследовано от Buffer

Исходный код
def sum[B >: A](implicit num: Numeric[B]): B

Суммирует элементы этой коллекции.

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

Параметры типа
B

тип результата оператора +.

Параметры значения
num

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

Возвращает

сумма всех элементов этой коллекции относительно оператора + в num.

Унаследовано от IterableOnceOps

Исходный код
def tail: C

Остаток коллекции без её первого элемента.

Унаследовано от IterableOps

Исходный код
def tails: Iterator[C]

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

Возвращает

итератор по всем хвостам этой итерируемой коллекции

Пример

List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)

Унаследовано от IterableOps

Source
override def take(n: Int): C

Выбирает первые n элементов.

Параметры значения
n

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

Возвращает

последовательность, содержащую только первые n элементов этой последовательности, или всю последовательность, если в ней меньше n элементов. Если n отрицательно, возвращает пустую последовательность.

Классы определений IndexedSeqOps -> IterableOps -> IterableOnceOps
Унаследовано от IndexedSeqOps

Source
def takeInPlace(n: Int): Buffer.this.type

Унаследовано от Buffer

Source
override def takeRight(n: Int): C

Выбирает последние n элементов.

Параметры значения
n

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

Возвращает

последовательность, содержащую только последние n элементов этой последовательности, или всю последовательность, если в ней меньше n элементов. Если n отрицательно, возвращает пустую последовательность.

Классы определений IndexedSeqOps -> IterableOps
Унаследовано от IndexedSeqOps

Source
def takeRightInPlace(n: Int): Buffer.this.type

Унаследовано от Buffer

Source
def takeWhile(p: A => Boolean): C

Берет самую длинную префиксную последовательность элементов, удовлетворяющих предикату.

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

Параметры значения
p

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

Возвращает

самую длинную префиксную часть этой коллекции итерируемых элементов, все элементы которой удовлетворяют предикату p.

Унаследовано от IterableOps

Source
def takeWhileInPlace(p: A => Boolean): Buffer.this.type

Унаследовано от Buffer

Source
override def tapEach[U](f: A => U): C

Применяет функцию побочного эффекта к каждому элементу в этой коллекции. Строгие коллекции немедленно применяют f к своим элементам, в то время как ленивые коллекции, такие как представления и LazyLists, применяют f к каждому элементу только при и при каждом оценке элемента.

Параметры типа
U

тип возвращаемого значения f

Параметры значения
f

функция для применения к каждому элементу в этой коллекции итерируемых элементов

Возвращает

Такая же логическая коллекция, как и эта

Классы определений IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Source
def to[C1](factory: Factory[A, C1]): C1

Используя фабрику коллекций factory, преобразовать эту коллекцию в соответствующее представление для текущего типа элемента A. Примеры использования:

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

Унаследовано от IterableOnceOps

Source
def toArray[B >: A : ClassTag]: Array[B]

Преобразовать коллекцию в массив.

Примечание к реализации: НЕ вызывайте Array.from из этого метода.

Унаследовано от IterableOnceOps

Source
final def toBuffer[B >: A]: Buffer[B]

Унаследовано от IterableOnceOps

Source
def toIndexedSeq: IndexedSeq[A]

Унаследовано от IterableOnceOps

Source
def toList: List[A]

Унаследовано от IterableOnceOps

Source
def toMap[K, V](implicit ev: A <:< (K, V)): Map[K, V]

Унаследовано от IterableOnceOps

Source
def toSeq: Seq[A]

Возвращает

Эта коллекция в виде Seq[A]. Это эквивалентно to(Seq) , но может быть быстрее.

Унаследовано от IterableOnceOps

Source
def toSet[B >: A]: Set[B]

Унаследовано от IterableOnceOps

Source
override def toString(): String

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

Значение по умолчанию зависит от платформы.

Возвращает

строковое представление объекта.

Классы определений Seq -> Function1 -> Iterable -> Any
Унаследовано от Seq

Source
def toVector: Vector[A]

Унаследовано от IterableOnceOps

Source
def transpose[B](implicit asIterable: A => Iterable[B]): CC[CC[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

тип элементов каждого итерируемого набора.

Параметры значений
asIterable

явное преобразование, которое утверждает, что тип элементов этого итерируемого набора — Iterable.

Возвращает

двумерный итерируемый набор итерируемых наборов, где n-я строка — n-й столбец этого итерируемого набора.

Бросает исключения
IllegalArgumentException

если все наборы в этом итерируемом наборе не имеют одинаковый размер.

Унаследованно от IterableOps

Источник
def unapply(a: Int): Option[B]

Пытается извлечь B из A в выражении сопоставления с образцом.

Унаследованно от PartialFunction

Источник
def unzip[A1, A2](implicit asPair: A => (A1, A2)): (CC[A1], CC[A2])

Преобразует этот итерируемый набор пар в два набора первой и второй половины каждой пары.

val xs = Iterable(
           (1, "one"),
           (2, "two"),
           (3, "three")).unzip
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Тип параметров
A1

тип первой половины пар элементов

A2

тип второй половины пар элементов

Параметры значений
asPair

явное преобразование, которое утверждает, что тип элементов этого итерируемого набора — пара.

Возвращает

пара итерируемых наборов, содержащих соответственно первую и вторую половину каждой пары элементов этого итерируемого набора.

Унаследованно от IterableOps

Источник
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])

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

val xs = Iterable(
           (1, "one", '1'),
           (2, "two", '2'),
           (3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three),
//        Iterable(1, 2, 3))
Тип параметров
A1

тип первого элемента троек элементов

A2

тип второго элемента троек элементов

A3

тип третьего элемента троек элементов

Параметры значений
asTriple

явное преобразование, которое утверждает, что тип элементов этого итерируемого набора — тройка.

Возвращает

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

Унаследованно от IterableOps

Источник
def update(idx: Int, elem: A): Unit

Заменяет элемент по указанному индексу новым значением.

Параметры значений
elem

новое значение.

idx

индекс элемента для замены.

Бросает исключения
IndexOutOfBoundsException

если индекс недействителен.

Унаследованно от SeqOps

Источник
def updated[B >: A](index: Int, elem: B): CC[B]

Копия этого последовательности с одним заменённым элементом.

Тип параметров
B

тип элементов возвращаемой последовательности.

Параметры значений
elem

заменяющий элемент

index

позиция замены

Возвращает

новая последовательность, являющаяся копией этой последовательности, где элемент в позиции index заменён на elem.

Бросает исключения
IndexOutOfBoundsException

если index не удовлетворяет 0 <= index < length. В случае ленивой коллекции это исключение может быть выброшено в более позднее время или вообще не выброшено (если конец коллекции никогда не оценивается).

Унаследованно от SeqOps

Источник
override def view: IndexedSeqView[A]

Представление над элементами этой коллекции.

Классы-предки IndexedSeqOps -> SeqOps -> IterableOps
Унаследованно от IndexedSeqOps

Источник
def withFilter(p: A => Boolean): WithFilter[A, CC]

Создаёт нестрогое фильтрование этого итерируемого набора.

Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новую коллекцию, а второй только ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.

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

Параметры значений
p

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

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к тем элементам этого итерируемого набора, которые удовлетворяют предикату p.

Унаследованно от IterableOps

Источник
def zip[B](that: IterableOnce[B]): CC[(A, B)]

Возвращает итерируемый набор, образованный из этого итерируемого набора и другого итерируемого набора путём объединения соответствующих элементов парами. Если один из двух наборов длиннее другого, оставшиеся его элементы игнорируются.

Тип параметров
B

тип второй половины возвращаемых пар

Параметры значений
that

Итерируемый набор, предоставляющий вторую половину каждой пары результата.

Возвращает

новый итерируемый набор, содержащий пары, состоящие из соответствующих элементов этого итерируемого набора и that. Длина возвращаемого набора — минимум из длин этого итерируемого набора и that.

Унаследованно от IterableOps

Источник
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

Возвращает итерируемый набор, образованный из этого итерируемого набора и другого итерируемого набора путём объединения соответствующих элементов парами. Если один из двух наборов короче другого, для расширения более короткого набора до длины более длинного используются элементы-заполнители.

Параметры значений
that

итерируемый набор, предоставляющий вторую половину каждой пары результата

thatElem

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

thisElem

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

Возвращает

новый набор типа That, содержащий пары, состоящие из соответствующих элементов этого итерируемого набора и that . Длина возвращаемого набора — максимум из длин этого итерируемого набора и that. Если этот итерируемый набор короче that, значения thisElem используются для заполнения результата. Если that короче этого итерируемого набора, значения thatElem используются для заполнения результата.

Унаследованно от IterableOps

Источник
def zipWithIndex: CC[(A, Int)]

Объединяет этот итерируемый набор со своими индексами.

Возвращает

Новую итерируемую коллекцию, содержащую пары, состоящие из всех элементов этой итерируемой коллекции, сопоставленных с их индексом. Индексы начинаются с 0.

Пример

List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

Унаследовано от IterableOps

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/collection/mutable/IndexedBuffer.html

Spec-Zone.ru

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