Spec-Zone.ru › Scala 3.2

Класс Range.Inclusive

Исходный код

final class Inclusive(start: Int, end: Int, step: Int) extends Range

Надтипы
28 типов
класс Range
интерфейс Serializable
интерфейс StrictOptimizedSeqOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс StrictOptimizedSeqOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс StrictOptimizedIterableOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс IndexedSeq[Int]
интерфейс IndexedSeqOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс IndexedSeq[Int]
интерфейс IndexedSeqOps[Int, IndexedSeq, IndexedSeq[Int]]
класс AbstractSeq[Int]
интерфейс Seq[Int]
интерфейс SeqOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс Iterable[Int]
класс AbstractSeq[Int]
интерфейс Seq[Int]
интерфейс Equals
интерфейс SeqOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс PartialFunction[Int, Int]
интерфейс Int => Int
класс AbstractIterable[Int]
интерфейс Iterable[Int]
интерфейс IterableFactoryDefaults[Int, IndexedSeq]
интерфейс IterableOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс IterableOnceOps[Int, IndexedSeq, IndexedSeq[Int]]
интерфейс IterableOnce[Int]
класс Object
интерфейс Matchable
класс Any

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

Исходный код
def isInclusive: Boolean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Исходный код
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

Исходный код
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

Исходный код
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

Исходный код
def andThen[C](k: PartialFunction[Int, C]): PartialFunction[A, C]

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

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

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

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

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

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

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

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

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

Исходный код
override def andThen[C](k: Int => C): PartialFunction[A, C]

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

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

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

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

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

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

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

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

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

Исходный код
override def appended[B >: Int](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.

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

Исходный код
override def appendedAll[B >: Int](suffix: IterableOnce[B]): CC[B]

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

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

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

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

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

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

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

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

Исходный код
final def apply(idx: Int): Int

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

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

Исходный код
def applyOrElse[A1 <: Int, B1 >: Int](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

Источник
final def by(step: Int): Range

Создает новый диапазон с start и end значениями этого диапазона и новым step.

Возвращает

новый диапазон с другим шагом

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

значение опции, содержащей 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 >: Int](suffix: IterableOnce[B]): CC[B]

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

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

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

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

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

Возвращает

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

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

Исходный код
final override def contains[B >: Int](elem: B): Boolean

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

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

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

Возвращает

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

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

Источник
final def contains(x: Int): Boolean

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

Source
def copyToArray[B >: Int](xs: Array[B]): Int

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

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

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

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

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

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

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

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

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

Примечание

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

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

Source
def corresponds[B](that: IterableOnce[B])(p: (Int, B) => Boolean): Boolean

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

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

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

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

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

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

that

другой набор

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

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

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

Source
def corresponds[B](that: Seq[B])(p: (Int, B) => Boolean): Boolean

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

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

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

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

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

that

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

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

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

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

Source
def count(p: Int => Boolean): Int

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

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

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

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

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

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

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

Source
override def diff[B >: Int](that: Seq[B]): C

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

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

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

Возвращает

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

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

Источник
override def distinct: Range

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

Возвращает

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

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

Источник
override def distinctBy[B](f: Int => B): C

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

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

тип элементов после преобразования с помощью f

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

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

Возвращает

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

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

Источник
final override def drop(n: Int): Range

Создает новый диапазон, содержащий все элементы этого диапазона, кроме первых n элементов.

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

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

Возвращает

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

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

Источник
final override def dropRight(n: Int): Range

Создаёт новый диапазон, содержащий начальные length - n элементы диапазона.

Примечание: этот метод не использует билдеры для построения нового диапазона, и его сложность составляет O(1).

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

Источник
final override def dropWhile(p: Int => Boolean): Range

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

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

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

Возвращает

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

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

Source
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

Source
override def empty: CC[A]

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

Возвращает

пустую итерируемую последовательность типа C.

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

Source
def endsWith[B >: Int](that: Iterable[B]): Boolean

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

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

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

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

Возвращает

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

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

Source
final override def equals(other: Any): Boolean

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

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

Source
def exists(p: Int => Boolean): Boolean

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

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

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

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

Возвращает

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

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

Source
override def filter(pred: Int => Boolean): C

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

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

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

Возвращает

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

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

Source
override def filterNot(pred: Int => Boolean): C

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

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

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

Возвращает

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

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

Исходный код
def find(p: Int => Boolean): Option[A]

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

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

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

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

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

Возвращает

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

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

Исходный код
def findLast(p: Int => Boolean): Option[A]

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

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

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

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

Возвращает

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

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

Исходный код
override def flatMap[B](f: Int => 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 к каждому элементу этой итерируемой коллекции и конкатенацией результатов.

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

Исходный код
override def flatten[B](implicit toIterableOnce: Int => 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.

Возвращает

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

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

Источник
def fold[A1 >: Int](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, Int) => B): B

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Источник
override def foldRight[B](z: B)(op: (Int, B) => B): B

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
final override def foreach[U](f: Int => U): Unit

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

Definition Classes Range -> IterableOnceOps
Inherited from Range

Source
protected def fromSpecific(coll: IterableOnce[Int]): CC[A]

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

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

Note

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

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

Inherited from IterableFactoryDefaults

Source
def groupBy[K](f: Int => K): Map[K, C]

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

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

Type parameters
K

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

Value parameters
f

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

Returns

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

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

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

Inherited from IterableOps

Source
def groupMap[K, B](key: Int => K)(f: Int => 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)

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

Type parameters
B

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

K

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

Value parameters
f

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

key

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

Inherited from IterableOps

Source
def groupMapReduce[K, B](key: Int => K)(f: Int => 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

Исходный код
override def grouped(size: Int): Iterator[Range]

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

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

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

Возвращает

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

См. также

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

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

Исходный код
final override def hashCode: Int

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

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

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

Возвращает

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

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

Исходный код
final override def head: Int

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

Исходный код
final def inclusive: Range

Сделать диапазон включительным.

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

Исходный код
final override def indexOf[B >: Int](elem: B, from: Int): Int

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

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

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

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

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

from

индекс начала

Возвращает

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

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

Исходный код
def indexOf[B >: Int](elem: B): Int

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

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

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

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

значение элемента, которое нужно найти.

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

that

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Исходный код
def indexWhere(p: Int => Boolean, from: Int): Int

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

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

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

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

p

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

Возвращает

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

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

Исходный код
def indices: Range

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

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

Возвращает

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

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

Исходный код
final override def init: Range

Создаёт новый диапазон, содержащий все элементы этого диапазона, кроме последнего.

Примечание: этот метод не использует билдеры для создания нового диапазона, и его сложность составляет O(1).

Возвращает

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

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

Исходный код
override def inits: Iterator[Range]

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

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

Возвращает

итератор по всем начальным поддиапазонам этого диапазона

Пример

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

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

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

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

Параметры
that

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

Возвращает

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

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

Исходный код
def isDefinedAt(idx: Int): Boolean

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

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

Параметры
idx

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

Возвращает

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

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

Исходный код
override def isTraversableAgain: Boolean

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

Возвращает

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

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

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

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

Примечание

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

Классы-предки IndexedSeq -> IndexedSeq -> Seq -> Seq -> Iterable -> Iterable -> IterableOps
Унаследовано от IndexedSeq

Исходный код
final override def iterator: Iterator[Int]

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

Классы-предки Range -> IndexedSeqOps -> IterableOnce
Унаследовано от Range

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

Возвращает

Количество элементов в этой последовательности, если оно может быть вычислено с минимальными затратами, иначе -1. Минимальные затраты обычно означают: без обхода коллекции.

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

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

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

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

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

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

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

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

Параметры
elem

значение элемента, для которого нужно найти индекс.

end

конечный индекс.

Возвращает

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

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

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

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

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

Параметры
that

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

Возвращает

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

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

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

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

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

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

индекс конца

that

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Исходный код
def lastIndexWhere(p: Int => 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

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

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

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

Исходный код
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: Int => B): IndexedSeq[B]

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

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

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

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

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

Возвращает

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

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

Исходный код
final override def max[A1 >: Int](implicit ord: Ordering[A1]): Int

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

если этот диапазон пустой.

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

Источник
def maxBy[B](f: Int => B)(implicit cmp: Ordering[B]): A

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

если этот набор пустой.

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

Источник
def maxByOption[B](f: Int => B)(implicit cmp: Ordering[B]): Option[A]

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

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

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

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

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

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

f

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

Возвращает

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

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

Источник
def maxOption[B >: Int](implicit ord: Ordering[B]): Option[A]

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

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

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

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

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

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

Возвращает

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

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

Источник
final override def min[A1 >: Int](implicit ord: Ordering[A1]): Int

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

если этот диапазон пустой.

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

Источник
def minBy[B](f: Int => B)(implicit cmp: Ordering[B]): A

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

если этот набор пуст.

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

Источник
def minByOption[B](f: Int => B)(implicit cmp: Ordering[B]): Option[A]

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

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

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

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

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

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

f

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

Возвращает

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

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

Источник
def minOption[B >: Int](implicit ord: Ordering[B]): Option[A]

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

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

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

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

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

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

Возвращает

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

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

Источник
final def mkString: String

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

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

Возвращает

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

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

Источник
final def mkString(sep: String): String

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

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

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

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

Возвращает

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

Пример

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

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

Источник
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 >: Int](that: PartialFunction[A1, B1]): PartialFunction[A1, B1]

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

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

тип аргумента резервной функции

B1

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

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

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

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

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

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

Источник
override def padTo[B >: Int](len: Int, elem: B): CC[B]

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

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

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

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

значение заполнения

len

целевая длина

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

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

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

Источник
override def partition(p: Int => Boolean): (C, C)

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

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

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

Источник
override def partitionMap[A1, A2](f: Int => 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.

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

Источник
override def patch[B >: Int](from: Int, other: IterableOnce[B], replaced: Int): CC[B]

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

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

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

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

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

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

other

заменяющая последовательность

replaced

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

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

новая последовательность, состоящая из всех элементов этой последовательности, за исключением того, что replaced элементы, начиная с from, заменяются всеми элементами other.

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

Источник
def permutations: Iterator[C]

Итерируется по различным перестановкам.

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

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

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

Пример

"abb".permutations = Iterator(abb, bab, bba)

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

Source
override def prepended[B >: Int](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 и всех элементов этой последовательности.

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

Source
override def prependedAll[B >: Int](prefix: IterableOnce[B]): CC[B]

Как и :++, возвращает новую коллекцию, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда.

Отличается от :++ тем, что правый операнд определяет тип результирующей коллекции, а не левый. Мемоническая подсказка: двоеточие стоит со стороны нового типа коллекции.

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

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

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

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

Возвращает

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

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

Source
def product[B >: Int](implicit num: Numeric[B]): B

Перемножает элементы этой коллекции.

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

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

тип результата операции *.

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

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

Возвращает

произведение всех элементов этой коллекции относительно оператора * в num.

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

Source
def reduce[B >: Int](op: (B, B) => B): B

Сокращает элементы этой коллекции с использованием указанного ассоциативного бинарного оператора.

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

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

Параметр типа для бинарного оператора, являющийся надтипом A.

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Source
def reduceLeft[B >: Int](op: (B, Int) => B): B

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

если этот набор пуст.

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

Источник
def reduceLeftOption[B >: Int](op: (B, Int) => B): Option[B]

Применяет бинарный оператор ко всем элементам этого набора, слева направо (по возможности).

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

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

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

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

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

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

Возвращает

значение опционального типа, содержащее результат reduceLeft(op) если этот набор не пуст, None в противном случае.

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

Источник
def reduceOption[B >: Int](op: (B, B) => B): Option[B]

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

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

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

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

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

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

Возвращает

Значение опционального типа, содержащее результат применения оператора reduce op ко всем элементам, если набор не пуст, и None в противном случае.

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

Источник
def reduceRight[B >: Int](op: (Int, B) => B): B

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

если этот набор пуст.

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

Источник
def reduceRightOption[B >: Int](op: (Int, B) => B): Option[B]

Применяет бинарный оператор ко всем элементам этого набора, справа налево (по возможности).

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

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

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

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

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

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

Возвращает

значение опции, содержащее результат reduceRight(op), если этот набор не пуст, None в противном случае.

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

Источник
final override def reverse: Range

Возвращает обратный порядок этого диапазона.

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

Источник
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: Int => 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

Источник
override def sameElements[B >: Int](that: IterableOnce[B]): Boolean

Являются ли элементы этой коллекции такими же (и в том же порядке), что и элементы that?

Классы определений Range -> IndexedSeq -> SeqOps
Унаследовано от Range

Источник
def scan[B >: Int](z: B)(op: (B, B) => B): CC[B]

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

Примечание: нейтральный элемент z может применяться более одного раза.

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

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

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

ассоциативный оператор для сканирования

z

нейтральный элемент для оператора op

Возвращает

новая итерируемая коллекция, содержащая сканирование префиксов элементов в этой итерируемой коллекции

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

Источник
override def scanLeft[B](z: B)(op: (B, Int) => B): CC[B]

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

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

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

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

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

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

бинарный оператор, применяемый к промежуточному результату и элементу

z

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

Возвращает

коллекция со промежуточными результатами

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

Источник
def scanRight[B](z: B)(op: (Int, 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 >: Int](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 >: Int](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: Int => Boolean, from: Int): Int

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

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

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

индекс, с которого начинается поиск.

p

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
final override def size: Int

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

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

Возвращает

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

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

Источник
final override def sizeCompare(that: Iterable[_]): Int

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

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

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

Возвращает

Значение 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

Источник
final override def slice(from: Int, until: Int): Range

Создает новый диапазон, содержащий элементы, начиная с from и до, но не включая until.

Примечание: этот метод не использует сборщики для построения нового диапазона, и его сложность составляет O(1).

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

элемент, с которого нужно начать

until

элемент, на котором нужно закончить (не включен в диапазон)

Возвращает

новый диапазон, состоящий из непрерывного интервала значений в старом диапазоне

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

Источник
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.)

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

END_OF_DOCUMENT_MARKER
Параметры значения
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: Int => 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 sortWith(lt: (Int, Int) => Boolean): C

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

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

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

Сортировка стабильна. То есть, элементы, которые равны (как определено в lt) появляются в отсортированной последовательности в том же порядке, что и в исходной.

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

функция сравнения, которая проверяет, предшествует ли её первый аргумент второму в требуемом упорядочении.

Возвращает

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

Пример
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
Унаследовано от SeqOps

Источник
override def sorted[B >: Int](implicit ord: Ordering[B]): IndexedSeq[Int]

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

Сортировка стабильна. То есть, элементы, которые равны (как определено в ord.compare) появляются в отсортированной последовательности в том же порядке, что и в исходной.

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

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

Возвращает

диапазон, состоящий из элементов этого диапазона, отсортированных в соответствии с упорядочением ord.

См. также

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

Классы определений Range -> StrictOptimizedSeqOps -> SeqOps
Унаследовано от Range

Источник
final override def span(p: Int => Boolean): (Range, Range)

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

Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.

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

предикат проверки

Возвращает

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

Классы определений Range -> StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Унаследовано от Range

Источник
final override def splitAt(n: Int): (Range, Range)

Разделяет этот диапазон на пару префикс/суффикс в заданной позиции.

Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).

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

позиция разбиения.

Возвращает

пара диапазонов, состоящих из первых n элементов этого диапазона и других элементов.

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

Источник
def startsWith[B >: Int](that: IterableOnce[B], offset: Int): Boolean

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

Примечание: если оба объекта-получателя this и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.

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

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

that

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

Возвращает

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

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

Источник
final override def stepper[S <: Stepper[_]](implicit shape: StepperShape[Int, 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 могут быть преобразованы только в последовательные потоки.

Классы определений Range -> IndexedSeqOps -> IterableOnce
Унаследовано от Range

Source
final override def sum[B >: Int](implicit num: Numeric[B]): Int

Суммирует элементы этой коллекции.

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

тип результата оператора +.

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

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

Возвращает

сумма всех элементов этого диапазона относительно оператора + в num.

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

Source
final override def tail: Range

Создаёт новый диапазон, содержащий все элементы этого диапазона, кроме первого.

Примечание: этот метод не использует билдеры для создания нового диапазона, и его сложность — O(1).

Возвращает

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

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

Source
override def tails: Iterator[Range]

Итерируется по хвостам этого диапазона. Первое значение будет этим диапазоном, а последнее — пустым диапазоном, а промежуточные значения — результатами последовательных применений tail.

Возвращает

итератор по всем хвостам этого диапазона

Пример

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

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

Source
final override def take(n: Int): Range

Создаёт новый диапазон, содержащий первые n элементов этого диапазона.

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

количество элементов для взятия.

Возвращает

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

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

Source
final override def takeRight(n: Int): Range

Создаёт новый диапазон, состоящий из последних n элементов диапазона.

Примечание: этот метод не использует билдеры для создания нового диапазона, и его сложность — O(1).

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

Source
final override def takeWhile(p: Int => Boolean): Range

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

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

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

Возвращает

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

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

Source
override def tapEach[U](f: Int => U): C

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

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

тип возвращаемого значения f

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

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

Возвращает

Такая же логическая коллекция, как и эта

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

Source
def to[C1](factory: Factory[Int, C1]): C1

Принимая фабрику коллекции factory, преобразует эту коллекцию в соответствующее представление для текущего типа элемента A. Примеры использования:

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

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

Source
def toArray[B >: Int : ClassTag]: Array[B]

Преобразовать коллекцию в массив.

Примечание к реализации: НЕ вызывайте Array.from из этого метода.

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

Source
final def toBuffer[B >: Int]: Buffer[B]

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

Source
final override def toIndexedSeq: IndexedSeq[A]

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

Source
def toList: List[A]

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

Source
def toMap[K, V](implicit ev: Int <:< (K, V)): Map[K, V]

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

Source
final override def toSeq: Seq.this.type

Возвращает

Эта коллекция как Seq[A]. Это эквивалентно to(Seq), но может быть быстрее.

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

Source
def toSet[B >: Int]: Set[B]

Наследуется от IterableOnceOps

Источник
final override def toString: String

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

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

Возвращает

строковое представление объекта.

Классы-предки Range -> Seq -> Function1 -> Iterable -> Any
Наследуется от Range

Источник
def toVector: Vector[A]

Наследуется от IterableOnceOps

Источник
def transpose[B](implicit asIterable: Int => 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

Источник
override def unzip[A1, A2](implicit asPair: Int => (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

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

Возвращает

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

Классы-предки StrictOptimizedIterableOps -> IterableOps
Наследуется от StrictOptimizedIterableOps

Источник
override def unzip3[A1, A2, A3](implicit asTriple: Int => (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

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

Возвращает

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

Классы-предки StrictOptimizedIterableOps -> IterableOps
Наследуется от StrictOptimizedIterableOps

Источник
override def updated[B >: Int](index: Int, elem: B): CC[B]

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

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

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

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

заменяющий элемент

index

позиция замены

Возвращает

новая последовательность, являющаяся копией этой последовательности, в которой элемент по позиции index заменен на elem.

Исключения
IndexOutOfBoundsException

если index не удовлетворяет 0 <= index < length. В случае ленивой коллекции это исключение может быть выброшено позже или вообще не выброшено (если конец коллекции никогда не оценивается).

Классы-предки StrictOptimizedSeqOps -> SeqOps
Наследуется от StrictOptimizedSeqOps

Источник
override def view: IndexedSeqView[A]

Представление элементов этого множества.

Классы-предки IndexedSeqOps -> SeqOps -> IterableOps
Наследуется от IndexedSeqOps

Источник
def withFilter(p: Int => Boolean): WithFilter[A, CC]

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

Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новое множество, а второй только ограничивает область последующих map, flatMap, foreach, и withFilter операций.

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

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

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

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к тем элементам этого итерируемого множества, которые удовлетворяют предикату p.

Наследуется от IterableOps

Источник
override def zip[B](that: IterableOnce[B]): CC[(A, B)]

Возвращает итерируемое множество, образованное из этого итерируемого множества и другого итерируемого множества путём объединения соответствующих элементов в пары. Если одно из двух множеств длиннее другого, оставшиеся элементы игнорируются.

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

тип второй половины возвращаемых пар

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

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

Возвращает

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

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

Источник
def zipAll[A1 >: Int, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

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

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

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

thatElem

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

thisElem

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

Возвращает

новый набор типа That, содержащий пары, состоящие из соответствующих элементов этого итерируемого набора и that. Длина возвращаемого набора — максимальное значение из длин этого итерируемого набора и that. Если этот итерируемый набор короче that, используются значения thisElem для дополнения результата. Если that короче, чем этот итерируемый набор, используются значения thatElem для дополнения результата.

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

Источник
override def zipWithIndex: CC[(A, Int)]

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

Возвращает

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

Пример

List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

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

Унаследованные поля

Источник
final override val isEmpty: Boolean

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

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

Возвращает

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

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

© 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/immutable/Range$$Inclusive.html

Spec-Zone.ru

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