Spec-Zone.ru › Scala 3.2

Класс Set.Set3

Исходный код

final class Set3[A] extends AbstractSet[A] with StrictOptimizedIterableOps[A, Set, Set[A]] with Serializable

Оптимизированное представление неизменяемого множества размера 3

Супертипы
20 типов
интерфейс Serializable
интерфейс StrictOptimizedIterableOps[A, Set, Set[A]]
класс AbstractSet[A]
интерфейс Set[A]
интерфейс SetOps[A, Set, Set[A]]
интерфейс Iterable[A]
класс AbstractSet[A]
интерфейс Set[A]
интерфейс Equals
интерфейс SetOps[A, Set, Set[A]]
интерфейс A => Boolean
класс AbstractIterable[A]
интерфейс Iterable[A]
интерфейс IterableFactoryDefaults[A, Set]
интерфейс IterableOps[A, Set, Set[A]]
интерфейс IterableOnceOps[A, Set, Set[A]]
интерфейс IterableOnce[A]
класс Object
интерфейс Matchable
класс Any

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

Исходный код
def contains(elem: A): Boolean

Исходный код
def excl(elem: A): Set[A]

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

Параметры
elem

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

Возвращает

новое множество, содержащее все элементы исходного множества, но не содержащее elem.

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

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

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

Параметры
p

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

Возвращает

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

Определяющие классы IterableOnceOps

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

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

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

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

Параметры
p

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

Возвращает

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

Определяющие классы IterableOnceOps

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

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

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

Параметры
p

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

Возвращает

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

Определяющие классы IterableOnceOps

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

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

Определяющие классы IterableOnceOps

Source
override def head: A

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

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

Возвращает

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

Исключения
NoSuchElementException

если неизменяемое множество пустое.

Классы определений IterableOps

Source
def incl(elem: A): Set[A]

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

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

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

Возвращает

новое множество, содержащее все элементы этого множества и также содержащее elem.

Source
override def isEmpty: Boolean

Проверяет, является ли неизменяемое множество пустым.

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

Возвращает

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

Классы определений IterableOnceOps

Source
def iterator: Iterator[A]

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

Source
override def knownSize: Int

Возвращает

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

Классы определений IterableOnce

Source
override def size: Int

Размер этого неизменяемого множества.

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

Возвращает

количество элементов в этом неизменяемом множестве.

Классы определений IterableOnceOps

Source
override def tail: Set[A]

Остальная часть коллекции без первого элемента.

Классы определений IterableOps

Методы, унаследованные от предков

Source
final def &(that: Set[A]): C

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

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

Source
final def &~(that: Set[A]): C

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

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

Source
final override def +(elem: A): C

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

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

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

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

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

Source
final def ++(that: IterableOnce[A]): C

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

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

Source
final override def -(elem: A): C

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

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

Source
final override def --(that: IterableOnce[A]): C

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

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

Source
final def addString(b: StringBuilder): StringBuilder

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

Пример:

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

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

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

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

Возвращает

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

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

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

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

Пример:

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

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

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

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

sep

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

Возвращает

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

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

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

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

Пример:

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

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

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

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

end

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

sep

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

start

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

Возвращает

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

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

Source
def andThen[A](g: Boolean => A): T1 => A

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

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

тип результата функции g

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

функция R => A

Возвращает

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

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

Source
final def apply(elem: A): Boolean

Проверяет, содержится ли какой-либо элемент в этом наборе.

Этот метод эквивалентен contains. Он позволяет рассматривать наборы как предиката.

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

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

Возвращает

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

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

Source
def canEqual(that: Any): Boolean

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

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

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

Возвращает

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

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

Source
override def collect[B](pf: PartialFunction[A, B]): CC[B]

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

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

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

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

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

Возвращает

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

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

Source
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

тип, к которому можно применить функцию g

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

функция A => T1

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def concat(that: IterableOnce[A]): C

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

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

Пример:

scala> val a = Set(1, 2) concat Set(2, 3)
a: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
Параметры значения
that

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

множество элементов, которые нужно исключить.

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

множество, содержащее элементы этого множества, которые также не содержатся в заданном множестве that.

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

Источник
def drop(n: Int): C

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

Пустой итерируемый набор того же типа, что и этот итерируемый набор

Возвращает

пустой итерируемый набор типа C.

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

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

Равенство множеств реализовано с помощью метода поиска contains. Этот метод возвращает true если

  • аргумент that является Set,

  • два набора имеют одинаковый размер, и

  • для каждого element этого набора, other.contains(element) == true.

Реализация equals проверяет метод canEqual, поэтому подклассы Set могут сузить равенство до конкретных типов множеств. Реализации Set в стандартной библиотеке могут быть сравнимы, их методы canEqual возвращают true.

Примечание: метод equals учитывает законы равенства (симметричность, транзитивность) только если два множества используют одну и ту же функцию эквивалентности элементов в операции поиска. Например, операция эквивалентности элементов в scala.collection.immutable.TreeSet определяется его порядком. Сравнение TreeSet с HashSet приводит к непредсказуемым результатам, если ordering.equiv(e1, e2) (используемая для поиска в TreeSet) отличается от e1 == e2 (используемая для поиска в HashSet).

scala> import scala.collection.immutable._
scala> val ord: Ordering[String] = _ compareToIgnoreCase _

scala> TreeSet("A")(ord) == HashSet("a")
val res0: Boolean = false

scala> HashSet("a") == TreeSet("A")(ord)
val res1: Boolean = true
Параметры значения
that

Множество, с которым сравнивается это множество

Возвращает

true если два множества равны в соответствии с описанием

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

Источник
override 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 к каждому элементу этого итерируемого набора и конкатенации результатов.

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

Источник
override def flatten[B](implicit toIterableOnce: 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.

Возвращает

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

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

Источник
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

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

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

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

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

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

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

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

z

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

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

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

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

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

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

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

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

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

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

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

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

z

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

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

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

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

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

Источник
protected def fromSpecific(coll: IterableOnce[A]): CC[A]

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

K

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

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

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

key

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

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

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

Базовый алгоритм хэширования зависит от платформы.

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

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

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

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

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

Возвращает первый элемент (или None, если коллекция пустая).

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

Возвращает

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

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

Источник
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(that: Set[A]): C

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

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

множество для пересечения.

Возвращает

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

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

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

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

Возвращает

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

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

Источник
override def iterableFactory: IterableFactory[Set]

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

Примечание

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

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

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

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

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

Возвращает

Последний элемент этой итерируемой коллекции.

Исключения
NoSuchElementException

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

Возвращает

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

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

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

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

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

class="attributes">
Параметры типа
B

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

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

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

Возвращает

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

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

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

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

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

class="attributes">
Возвращает

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

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

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

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

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

sep

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

start

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

Возвращает

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

Пример

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

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

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

class="attributes">
Возвращает

строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, 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

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

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

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

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

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

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

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

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

Возвращает

Результат применения оператора 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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def removedAll(that: IterableOnce[A]): C

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

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

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

Возвращает

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

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

Источник
protected def reversed: Iterable[A]

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

Source
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

Source
override def span(p: A => Boolean): (C, C)

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

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

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

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

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

Возвращает

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

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

Source
override def splitAt(n: Int): (C, C)

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

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

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

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

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

Возвращает

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

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

Source
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. Для Stepper, помеченных как scala.collection.Stepper.EfficientSplit, конвертеры в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Stepper могут быть преобразованы только в последовательные потоки.

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

Source
def subsetOf(that: Set[A]): Boolean

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

Параметры
that

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

Возвращает

true , если это множество является подмножеством that, то есть, если каждый элемент этого множества также является элементом that.

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

Source
def subsets(): Iterator[C]

Итератор по всем подмножествам этого множества.

Возвращает

итератор.

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

Source
def subsets(len: Int): Iterator[C]

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

Параметры
len

размер подмножеств.

Возвращает

итератор.

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

Source
def sum[B >: A](implicit num: Numeric[B]): B

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

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

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

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

Параметры
num

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

Возвращает

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

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

Source
def tails: Iterator[C]

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

Возвращает

итератор по всем хвостам этого итерируемого набора

Пример

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

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

Source
def take(n: Int): C

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

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

Параметры
n

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

Возвращает

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

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

Source
override def takeRight(n: Int): C

Коллекция, содержащая последние n элементы этой коллекции.

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

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

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

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

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

Параметры
p

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

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

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

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

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

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

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

тип возвращаемого значения f

Параметры
f

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

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

Такую же логическую коллекцию, как и эта

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

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

Исходный код
def toSeq: Seq[A]

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

Эта коллекция в виде Seq[A]. Это эквивалентно to(Seq), но может быть быстрее.

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

Исходный код
def toSet[B >: A]: Set[B]

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

Исходный код
override def toString(): String

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

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

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

строковое представление объекта.

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

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

Исходный код
final def union(that: Set[A]): C

Вычисляет объединение множества с другим множеством.

Параметры
that

множество для объединения.

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

новое множество, содержащее все элементы, присутствующие в этом множестве или в заданном множестве that.

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

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

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

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

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

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

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

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

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

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

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

Исходный код
def view: View[A]

Представление над элементами этого множества.

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

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

Исходный код
override def zip[B](that: IterableOnce[B]): CC[(A, B)]

Возвращает итерируемое множество, сформированное из этого итерируемого множества и другого итерируемого множества путём объединения соответствующих элементов в пары. Если одно из двух множеств длиннее другого, его оставшиеся элементы игнорируются.

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

тип второй половины возвращаемых пар

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

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

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

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

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

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

Исходный код
override def zipWithIndex: CC[(A, Int)]

Объединяет это итерируемое множество с его индексами.

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

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

Пример

List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

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

Исходный код
final def |(that: Set[A]): C

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

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

© 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/Set$$Set3.html

Spec-Zone.ru

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