Spec-Zone.ru › Scala 3.2

Тракт LinearSeq.LinearSeq

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

тракт LinearSeq[+A] extends Seq[A] with LinearSeq[A] with LinearSeqOps[A, LinearSeq, LinearSeq[A]] with IterableFactoryDefaults[A, LinearSeq]

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

Надтипы
19 типов
тракт LinearSeqOps[A, LinearSeq, LinearSeq[A]]
тракт LinearSeq[A]
тракт LinearSeqOps[A, LinearSeq, LinearSeq[A]]
тракт Seq[A]
тракт SeqOps[A, LinearSeq, LinearSeq[A]]
тракт Seq[A]
тракт Equals
тракт SeqOps[A, LinearSeq, LinearSeq[A]]
тракт PartialFunction[Int, A]
тракт Int => A
тракт Iterable[A]
тракт Iterable[A]
тракт IterableFactoryDefaults[A, LinearSeq]
тракт IterableOps[A, LinearSeq, LinearSeq[A]]
тракт IterableOnceOps[A, LinearSeq, LinearSeq[A]]
тракт IterableOnce[A]
класс Object
тракт Matchable
класс Any
Известные подтипы
класс LazyList[A]
класс List[A]
класс ::[A]
объект Nil.type
класс Queue[A]
класс Stream[A]
класс Cons[A]
объект Empty.type

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

Исходный код
переопределение def iterableFactory: SeqFactory[LinearSeq]

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

Примечание

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

Классы определений LinearSeq -> Seq -> Seq -> Iterable -> Iterable -> IterableOps

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

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

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

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

Исходный код
конечное переопределение def ++:[B >: A](prefix: IterableOnce[B]): CC[B]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Исходный код
конечный 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[A, C]): PartialFunction[A, C]

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Пример:

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Исходный код
def applyOrElse[A1 <: Int, B1 >: A](x: A1, default: A1 => B1): B1

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

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

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

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

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

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

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

функция обратного вызова

x

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

Возвращает

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

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

Исходный код
def canEqual(that: Any): Boolean

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

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

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

Возвращает

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

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

Исходный код
def collect[B](pf: PartialFunction[A, B]): CC[B]

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

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

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

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

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

Возвращает

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

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

Исходный код
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

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

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

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

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

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

Возвращает

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

Пример

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

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

Исходный код
def combinations(n: Int): Iterator[C]

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

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

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

Возвращает

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

Пример

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

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

Source
def compose[R](k: PartialFunction[R, Int]): PartialFunction[R, B]

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

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

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

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

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

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

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

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

Наследуется от PartialFunction

Source
def compose[A](g: A => Int): A => R

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

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

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

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

функция A => T1

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

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

Наследуется от Function1

Source
final override def concat[B >: A](suffix: IterableOnce[B]): CC[B]

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

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

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

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

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

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

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

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

Source
override def contains[A1 >: A](elem: A1): Boolean

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

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

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

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

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

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

Классы определений LinearSeqOps -> SeqOps
Наследуется от LinearSeqOps

Source
def containsSlice[B >: A](that: Seq[B]): Boolean

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

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

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

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

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

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

Наследуется от SeqOps

Source
def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

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

Исходный код
def copyToArray[B >: A](xs: Array[B], start: Int): Int

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

Исходный код
def copyToArray[B >: A](xs: Array[B]): Int

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

Исходный код
def corresponds[B](that: IterableOnce[B])(p: (A, B) => Boolean): Boolean

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

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

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

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

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

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

that

другой набор

Возвращает

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

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

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

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

Type parameters
B

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

Value parameters
p

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

that

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

Returns

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

Inherited from SeqOps

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

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

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

Value parameters
p

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

Returns

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

Inherited from IterableOnceOps

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

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

Value parameters
that

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

Returns

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

Inherited from SeqOps

Source
def distinct: C

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

Returns

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

Inherited from SeqOps

Source
def distinctBy[B](f: A => B): C

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

Type parameters
B

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

Value parameters
f

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

Returns

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

Inherited from SeqOps

Source
def drop(n: Int): C

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

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

Value parameters
n

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

Returns

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

Inherited from IterableOps

Source
def dropRight(n: Int): C

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def elementWise: ElementWiseExtractor[A, B]

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

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

Источник
override def empty: CC[A]

Пустая итерируемая коллекция того же типа, что и эта итерируемая коллекция

Возвращает

пустая итерируемая коллекция типа C.

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

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

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

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

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

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

Возвращает

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

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

Источник
override def equals(o: Any): Boolean

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def filter(pred: A => Boolean): C

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

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

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

Возвращает

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

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

Источник
def filterNot(pred: A => Boolean): C

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

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

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

Возвращает

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

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

Источник
override def find(p: A => Boolean): Option[A]

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

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

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

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

Возвращает

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

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

Источник
override def findLast(p: A => Boolean): Option[A]

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

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

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

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

Возвращает

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

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

Источник
def flatMap[B](f: A => IterableOnce[B]): CC[B]

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

Например:

def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+")

Тип результирующего набора определяется статическим типом итерируемого набора. Это может иногда приводить к неожиданным результатам. Например:

// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)

// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet flatMap ((word: String) => word.toSeq)

// xs will be an Iterable[Int]
val xs = Map("a" -> List(11,111), "b" -> List(22,222)).flatMap(_._2)

// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2)
Параметры типа
B

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

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

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

Возвращает

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

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

Исходный код
def flatten[B](implicit asIterable: A => IterableOnce[B]): CC[B]

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

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

val xs = List(
           Set(1, 2, 3),
           Set(1, 2, 3)
         ).flatten
// xs == List(1, 2, 3, 1, 2, 3)

val ys = Set(
           List(1, 2, 3),
           List(3, 2, 1)
         ).flatten
// ys == Set(1, 2, 3)
Параметры типа
B

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Source
override def forall(p: A => Boolean): Boolean

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

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

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

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

Возвращает

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

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

Source
override def foreach[U](f: A => U): Unit

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Source
def groupMap[K, B](key: A => K)(f: A => B): Map[K, CC[B]]

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

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

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

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

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

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

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

K

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

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

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

key

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

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

Source
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]

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

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

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

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

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

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

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

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

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

Возвращает

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

См. также

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

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

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

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

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

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

Возвращает

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

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

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

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

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

Возвращает

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

Исключение
NoSuchElementException

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

from

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

that

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

Возвращает

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

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

Источник
override def indexWhere(p: A => Boolean, from: Int): Int

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

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

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

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

p

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def indices: Range

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

Параметры
that

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

Возвращает

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

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

Источник
override def isDefinedAt(x: Int): Boolean

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

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

Параметры
idx

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

Возвращает

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

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

Источник
override def isEmpty: Boolean

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

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

Возвращает

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

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

Источник
override def isTraversableAgain: Boolean

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

Возвращает

true если оно многократно просматриваемое, false в противном случае.

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

Исходный код
def iterator: Iterator[A]

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

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

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

Возвращает

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

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

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

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

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

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

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

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

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

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

end

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

that

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

Возвращает

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

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

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

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

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

class="attributes">
Параметры значения
p

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

Возвращает последний элемент (возможно).

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

Возвращает

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

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

Источник
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Iterable]

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

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

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

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

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

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

Возвращает

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

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

Источник
def length: Int

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

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

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

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

Source
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

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

Source
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

Source
def lift: A => Option[B]

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

Возвращает

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

См. также

Function.unlift

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

Source
def map[B](f: A => B): CC[B]

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

B1

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

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

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

Возвращает

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

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

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

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

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

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

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

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

len

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

Возвращает

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

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

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

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

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

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

Источник
def partitionMap[A1, A2](f: A => Either[A1, A2]): (CC[A1], CC[A2])

Применяет функцию f к каждому элементу итерируемой коллекции и возвращает пару итерируемых коллекций: первая содержит значения, возвращённые f и заключённые в scala.util.Left, вторая — заключённые в scala.util.Right.

Пример:

val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
 case i: Int => Left(i)
 case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

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

A2

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

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

функция 'разделения', отображающая элементы этого итерируемого набора в scala.util.Either

Возвращает

пару итерируемых наборов: первый набор содержит значения, возвращённые f, которые были обернуты в scala.util.Left, а второй — те, которые были обернуты в scala.util.Right.

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

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

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

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

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

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

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

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

other

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

replaced

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

Возвращает

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

Кроме того, исходная последовательность не изменяется, поэтому вам нужно будет сохранить результат.

Пример:

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

scala> val y = 2 +: x
y: List[Int] = List(2, 1)

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

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

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

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

Возвращает

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

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

Источник
def prependedAll[B >: A](prefix: IterableOnce[B]): CC[B]

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

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

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

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

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

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

Возвращает

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

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

Источник
def product[B >: A](implicit num: Numeric[B]): B

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

объект типа Option, содержащий результат reduceLeft(op) , если эта коллекция не пуста, иначе None.

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

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

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

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

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

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

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

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

Возвращает

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

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

Source
def reduceRight[B >: A](op: (A, B) => B): B

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Source
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]

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

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

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

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

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

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

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

Возвращает

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

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

Source
def reverse: C

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

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

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

Возвращает

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

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

Source
def reverseIterator: Iterator[A]

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

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

Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но может быть более эффективным.

Возвращает

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

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

Source
protected def reversed: Iterable[A]

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

Source
def runWith[U](action: A => U): A => Boolean

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

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

if(pf isDefinedAt x) { action(pf(x)); true } else false

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

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

функция действия

Возвращает

функция, которая отображает аргументы x в isDefinedAt(x). Результирующая функция выполняет action(this(x)) там, где this определена.

См. также

applyOrElse.

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

Source
override def sameElements[B >: A](that: IterableOnce[B]): Boolean

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

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

Source
def scan[B >: A](z: B)(op: (B, B) => B): CC[B]

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

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

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

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

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

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

z

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

Возвращает

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

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

Source
def scanLeft[B](z: B)(op: (B, A) => B): CC[B]

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Source
def scanRight[B](z: B)(op: (A, B) => B): CC[B]

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

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

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

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
Параметры типа
B

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

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

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

z

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

Возвращает

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

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

Source
def search[B >: A](elem: B, from: Int, to: Int)(implicit ord: Ordering[B]): SearchResult

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

После вызова набор должен быть отсортирован с тем же Ordering для определения результатов; в противном случае результаты будут неопределенными.

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

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

from

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

ord

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

to

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

Возвращает

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

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

Примечание

если to <= from, пространство поиска пусто, и возвращается InsertionPoint по адресу from

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

Источник
def search[B >: A](elem: B)(implicit ord: Ordering[B]): SearchResult

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

Набор должен быть отсортирован с тем же Ordering перед вызовом; в противном случае результаты не определены.

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

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

ord

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

Возвращает

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

См. также

scala.collection.IndexedSeq

scala.math.Ordering

scala.collection.SeqOps, метод sorted

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

Источник
override def segmentLength(p: A => Boolean, from: Int): Int

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

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

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

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

p

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

Размер этого набора.

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

Возвращает

количество элементов в этом наборе.

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

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

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

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

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

Исходный код
def slice(from: Int, until: Int): C

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

from <= indexOf(x) < until

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

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

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

until

наименьший индекс для ИСКЛЮЧЕНИЯ из этого итерируемого набора.

Возвращает

итерируемый набор, содержащий элементы, больше или равные индексу from, и до (но не включая) индекс until этого итерируемого набора.

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

Исходный код
def sliding(size: Int, step: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, передавая "скользящее окно" по ним (в отличие от их разделения, как это делается в grouped.)

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

Параметры значения
size

количество элементов в группе

step

расстояние между первыми элементами последовательных групп

Возвращает

Итератор, генерирующий итерируемые коллекции размером size, за исключением последнего элемента (который может быть единственным), который будет меньше, если оставшихся элементов для группировки меньше, чем size.

См. также

scala.collection.Iterator, метод sliding

Пример

List(1, 2, 3, 4, 5).sliding(2, 2) = Iterator(List(1, 2), List(3, 4), List(5))

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

Унаследованно от IterableOps

Источник
def sliding(size: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, перемещая "скользящее окно" по ним (в отличие от их разбиения, как это делается в grouped).

Пустая коллекция возвращает пустой итератор, а непустая коллекция, содержащая меньше элементов, чем размер окна, возвращает итератор, который будет генерировать исходную коллекцию как единственный элемент.

Параметры значения
size

количество элементов в группе

Возвращает

Итератор, генерирующий итерируемые коллекции размером size, за исключением непустой коллекции с менее чем size элементами, которая возвращает итератор, который генерирует исходную коллекцию как единственный элемент.

См. также

scala.collection.Iterator, метод sliding

Пример

List().sliding(2) = empty iterator

List(1).sliding(2) = Iterator(List(1))

List(1, 2).sliding(2) = Iterator(List(1, 2))

List(1, 2, 3).sliding(2) = Iterator(List(1, 2), List(2, 3))

Унаследованно от IterableOps

Источник
def sortBy[B](f: A => B)(implicit ord: Ordering[B]): C

Сортирует эту последовательность в соответствии с упорядочением, полученным из преобразования неявно заданного упорядочения с помощью функции преобразования.

Примечание: не завершит работу для коллекций бесконечного размера.

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

Сортировка стабильная. То есть элементы, равные (как определено в ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры типа
B

целевой тип преобразования f, и тип, где определено упорядочение ord.

Параметры значения
f

функция преобразования, отображающая элементы в некоторую другую область B.

ord

упорядочение, предполагаемое в области B.

Возвращает

последовательность, состоящую из элементов этой последовательности, отсортированных в соответствии с упорядочением, где x < y , если ord.lt(f(x), f(y)).

См. также

scala.math.Ordering

Пример
val words = "The quick brown fox jumped over the lazy dog".split(' ')
// this works because scala.Ordering will implicitly provide an Ordering[Tuple2[Int, Char]]
words.sortBy(x => (x.length, x.head))
res0: Array[String] = Array(The, dog, fox, the, lazy, over, brown, quick, jumped)
Унаследованно от SeqOps

Источник
def sortWith(lt: (A, A) => Boolean): C

Сортирует эту последовательность в соответствии с функцией сравнения.

Примечание: не завершит работу для коллекций бесконечного размера.

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

Сортировка стабильная. То есть элементы, равные (как определено в lt), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры значения
lt

функция сравнения, проверяющая, предшествует ли первый аргумент второму аргументу в желаемом порядке.

Возвращает

последовательность, состоящую из элементов этой последовательности, отсортированных в соответствии с функцией сравнения lt.

Пример
List("Steve", "Tom", "John", "Bob").sortWith(_.compareTo(_) < 0) =
List("Bob", "John", "Steve", "Tom")
Унаследованно от SeqOps

Источник
def sorted[B >: A](implicit ord: Ordering[B]): C

Сортирует эту последовательность в соответствии с упорядочением.

Сортировка стабильная. То есть элементы, равные (как определено в ord.compare), появляются в отсортированной последовательности в том же порядке, что и в исходной.

Параметры значения
ord

упорядочение, используемое для сравнения элементов.

Возвращает

последовательность, состоящую из элементов этой последовательности, отсортированных в соответствии с упорядочением ord.

См. также

scala.math.Ordering Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

Унаследовано от SeqOps

Источник
def span(p: A => Boolean): (C, C)

Разделяет эту итерируемую коллекцию на пару префикс/суффикс в соответствии с предикатом.

Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.

Параметры значения
p

предикат проверки

Возвращает

пара, состоящая из самого длинного префикса этой итерируемой коллекции, элементы которого все удовлетворяют p, и оставшейся части этой итерируемой коллекции.

Унаследовано от IterableOps

Источник
override def splitAt(n: Int): (C, C)

Разделяет эту итерируемую коллекцию на пару префикс/суффикс в заданной позиции.

Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).

Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.

Параметры значения
n

позиция, в которой необходимо разделить.

Возвращает

пара итерируемых коллекций, состоящая из первых n элементов этой итерируемой коллекции и других элементов.

Классы определений IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Источник
def startsWith[B >: A](that: IterableOnce[B], offset: Int): Boolean

Проверяет, содержит ли эта последовательность заданную последовательность в заданном индексе.

Примечание: если и получающий объект this и аргумент that являются бесконечными последовательностями, этот метод может не завершиться.

Параметры значения
offset

индекс, где ищется последовательность.

that

тестируемая последовательность

Возвращает

true, если последовательность that содержится в этой последовательности в индексе offset, в противном случае false.

Унаследовано от SeqOps

Источник
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S

Возвращает 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. Для шагов, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, в то время как обычные шаги могут быть преобразованы только в последовательные потоки.

Унаследовано от IterableOnce

Исходный код
def sum[B >: A](implicit num: Numeric[B]): B

Вычисляет сумму элементов этого набора.

Примечание: не будет завершаться для наборов бесконечного размера.

Параметры типа
B

тип результата операции +.

Параметры значения
num

неявный параметр, определяющий набор арифметических операций, который включает операцию +, используемую для вычисления суммы.

Возвращает

сумма всех элементов этого набора по отношению к оператору + в num.

Унаследовано от IterableOnceOps

Исходный код
def tail: C

Остальная часть набора без первого элемента.

Унаследовано от IterableOps

Исходный код
override def tails: Iterator[C]

Итерирует по хвостам этой последовательности. Первое значение будет этой последовательностью, а последнее — пустой последовательностью, а промежуточные значения будут результатами последовательных применений tail.

Возвращает

итератор по всем хвостам этой последовательности

Пример

List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)

Классы определений LinearSeqOps -> IterableOps
Унаследовано от LinearSeqOps

Исходный код
def take(n: Int): C

Выбирает первые n элементов.

Примечание: может возвращать разные результаты при разных запусках, если только тип базового набора не упорядочен.

Параметры значения
n

количество элементов, которые нужно взять из этого набора.

Возвращает

набор, состоящий только из первых n элементов этого набора, или же весь набор, если в нём меньше n элементов. Если n отрицательно, возвращает пустой набор.

Унаследовано от IterableOps

Исходный код
def takeRight(n: Int): C

Выбирает последние n элементов.

Примечание: может возвращать разные результаты при разных запусках, если только тип базового набора не упорядочен.

Параметры значения
n

количество элементов, которые нужно взять из этого набора.

Возвращает

набор, состоящий только из последних n элементов этого набора, или же весь набор, если в нём меньше n элементов. Если n отрицательно, возвращает пустой набор.

Унаследовано от IterableOps

Исходный код
def takeWhile(p: A => Boolean): C

Возвращает самую длинную префиксную часть элементов, удовлетворяющих предикату.

Примечание: может возвращать разные результаты при разных запусках, если только тип базового набора не упорядочен.

Параметры значения
p

Предикат для проверки элементов.

Возвращает

наибольший префикс этого набора, все элементы которого удовлетворяют предикату p.

Унаследовано от IterableOps

Исходный код
override def tapEach[U](f: A => U): C

Применяет функцию со побочным эффектом к каждому элементу в этом наборе. Строгие наборы применят f к своим элементам немедленно, в то время как ленивые наборы, такие как представления и LazyLists, применят f к каждому элементу только тогда, когда этот элемент будет оценён, и каждый раз, когда этот элемент будет оценён.

Параметры типа
U

тип возвращаемого значения f

Параметры значения
f

функция, которую нужно применить к каждому элементу в этом наборе.

Возвращает

тот же набор, что и этот

Классы определений IterableOps -> IterableOnceOps
Унаследовано от IterableOps

Исходный код
def to[C1](factory: Factory[A, C1]): C1

Используя фабрику наборов factory, преобразует этот набор в соответствующее представление для текущего типа элементов A. Примеры использования:

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

Унаследовано от IterableOnceOps

Исходный код
def toArray[B >: A : ClassTag]: Array[B]

Преобразование набора в массив.

Примечание реализации: НЕ вызывайте Array.from из этого метода.

Унаследовано от IterableOnceOps

Исходный код
final def toBuffer[B >: A]: Buffer[B]

Унаследовано от IterableOnceOps

Исходный код
def toIndexedSeq: IndexedSeq[A]

Унаследовано от IterableOnceOps

Исходный код
def toList: List[A]

Унаследовано от IterableOnceOps

Исходный код
def toMap[K, V](implicit ev: A <:< (K, V)): Map[K, V]

Унаследовано от IterableOnceOps

Исходный код
final override def toSeq: Seq.this.type

Возвращает

Этот набор как Seq[A]. Это эквивалентно to(Seq), но может быть быстрее.

Классы определений Seq -> IterableOnceOps
Унаследовано от Seq

Исходный код
def toSet[B >: A]: Set[B]

Унаследовано от IterableOnceOps

Исходный код
override def toString(): String

Возвращает строковое представление объекта.

По умолчанию представление зависит от платформы.

Возвращает

строковое представление объекта.

Классы-определения Seq -> Function1 -> Iterable -> Any
Унаследовано от Seq

Источник
def toVector: Vector[A]

Унаследовано от IterableOnceOps

Источник
def transpose[B](implicit asIterable: A => Iterable[B]): CC[CC[B]]

Транспонирует это итерируемое множество итерируемых множеств в итерируемое множество итерируемых множеств.

Тип результирующего множества будет определяться статическим типом итерируемого множества. Например:

val xs = List(
           Set(1, 2, 3),
           Set(4, 5, 6)).transpose
// xs == List(
//         List(1, 4),
//         List(2, 5),
//         List(3, 6))

val ys = Vector(
           List(1, 2, 3),
           List(4, 5, 6)).transpose
// ys == Vector(
//         Vector(1, 4),
//         Vector(2, 5),
//         Vector(3, 6))

Примечание: Даже при применении к представлению или ленивому множеству, элементы всегда будут принудительно вычислены.

Параметры типа
B

тип элементов каждого итерируемого множества.

Параметры значения
asIterable

явное преобразование, которое утверждает, что тип элемента этого итерируемого множества является Iterable.

Возвращает

двумерное итерируемое множество итерируемых множеств, в котором n-й ряд является n-м столбцом этого итерируемого множества.

Исключения
IllegalArgumentException

если все множества в этом итерируемом множестве не имеют одинаковый размер.

Унаследовано от IterableOps

Источник
def unapply(a: Int): Option[B]

Попытка извлечь B из A в выражении сопоставления с образцом.

Унаследовано от PartialFunction

Источник
def unzip[A1, A2](implicit asPair: A => (A1, A2)): (CC[A1], CC[A2])

Преобразует это итерируемое множество пар в два множества первой и второй половины каждой пары.

val xs = Iterable(
           (1, "one"),
           (2, "two"),
           (3, "three")).unzip
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

тип первой половины пар элементов

A2

тип второй половины пар элементов

Параметры значения
asPair

явное преобразование, которое утверждает, что тип элемента этого итерируемого множества является парой.

Возвращает

пара итерируемых множеств, содержащих первую и соответственно вторую половину каждой пары элементов этого итерируемого множества.

Унаследовано от IterableOps

Источник
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])

Преобразует это итерируемое множество троек в три множества первого, второго и третьего элемента каждой тройки.

val xs = Iterable(
           (1, "one", '1'),
           (2, "two", '2'),
           (3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three),
//        Iterable(1, 2, 3))
Параметры типа
A1

тип первого члена троек элементов

A2

тип второго члена троек элементов

A3

тип третьего члена троек элементов

Параметры значения
asTriple

явное преобразование, которое утверждает, что тип элемента этого итерируемого множества является тройкой.

Возвращает

тройка итерируемых множеств, содержащих первый, второй и соответственно третий член каждой тройки элементов этого итерируемого множества.

Унаследовано от IterableOps

Источник
def updated[B >: A](index: Int, elem: B): CC[B]

Копия этого последовательности с одним заменённым элементом.

Параметры типа
B

тип элемента возвращаемой последовательности.

Параметры значения
elem

заменяемый элемент

index

позиция замены

Возвращает

новая последовательность, являющаяся копией этой последовательности с элементом в позиции index заменённым на elem.

Исключения
IndexOutOfBoundsException

если index не удовлетворяет 0 <= index < length. В случае ленивого множества это исключение может быть выброшено позже или вообще не выброшено (если конец множества никогда не оценивается).

Унаследовано от SeqOps

Источник
override def view: SeqView[A]

Представление над элементами этого множества.

Классы-определения SeqOps -> IterableOps
Унаследовано от SeqOps

Источник
def withFilter(p: A => Boolean): WithFilter[A, CC]

Создаёт нестрогий фильтр этого итерируемого множества.

Примечание: различие между c filter p и c withFilter p в том, что первый создаёт новое множество, а второй только ограничивает область последующих map, flatMap, foreach, и withFilter операций.

Примечание: может возвращать разные результаты при разных запусках, если тип базового множества не упорядочен.

Параметры значения
p

предикат, используемый для проверки элементов.

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к элементам этого итерируемого множества, которые удовлетворяют предикату p.

Унаследовано от IterableOps

Источник
def zip[B](that: IterableOnce[B]): CC[(A, B)]

Возвращает итерируемое множество, образованное из этого итерируемого множества и другого итерируемого множества путём объединения соответствующих элементов в пары. Если одно из двух множеств длиннее другого, оставшиеся элементы игнорируются.

Параметры типа
B

тип второй половины возвращённых пар

Параметры значения
that

Итерируемое множество, предоставляющее вторую половину каждой пары результатов

Возвращает

новое итерируемое множество, содержащее пары, состоящие из соответствующих элементов этого итерируемого множества и that. Длина возвращаемого множества равна минимальному значению из длин этого итерируемого множества и that.

Унаследовано от IterableOps

Источник
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

Возвращает итерируемое множество, образованное из этого итерируемого множества и другого итерируемого множества путём объединения соответствующих элементов в пары. Если одно из двух множеств короче другого, элементы-заполнители используются для расширения более короткого множества до длины более длинного.

Параметры значения
that

итерируемый объект, предоставляющий вторую половину каждой пары результатов

thatElem

элемент, используемый для заполнения результата, если that короче, чем этот набор итераций.

thisElem

элемент, используемый для заполнения результата, если этот набор итераций короче, чем that.

Возвращает

новый набор типа That, содержащий пары, состоящие из соответствующих элементов этого набора итераций и that. Длина возвращаемого набора — максимальное значение длин этого набора итераций и that. Если этот набор итераций короче that, значения thisElem используются для заполнения результата. Если that короче, чем этот набор итераций, значения thatElem используются для заполнения результата.

Унаследовано от IterableOps

Исходный код
def zipWithIndex: CC[(A, Int)]

Объединяет этот набор итераций с его индексами.

Возвращает

Новый набор итераций, содержащий пары, состоящие из всех элементов этого набора итераций, соединенных со своим индексом. Индексы начинаются с 0.

Пример

List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

Унаследовано от IterableOps

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/collection/immutable/LinearSeq.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API