Spec-Zone.ru › Scala 3.2

Класс Set.Set4

Исходный код

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

Оптимизированное представление неизменяемых множеств размером 4

Надтипы
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

Исходный код
final def &~(that: Множество[A]): C

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

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

Исходный код
final override def +(elem: A): C

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

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

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

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

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

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

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

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

Исходный код
final override def -(elem: A): C

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

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

Исходный код
final override def --(that: IterableOnce[A]): C

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

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

Исходный код
final def addString(b: StringBuilder): StringBuilder

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

Пример:

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

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

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

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

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

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

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

Исходный код
final def addString(b: StringBuilder, sep: String): StringBuilder

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

Пример:

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

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

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

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

sep

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

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

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

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

Исходный код
def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder

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

Пример:

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

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

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

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

end

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

sep

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

start

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

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

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

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

Исходный код
def andThen[A](g: Boolean => A): T1 => A

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

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

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

Параметры
g

функция R => A

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

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

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

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

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

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

Параметры
elem

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

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

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

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

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

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

Параметры
that

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

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

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

Унаследовано от Множество

Исходный код
override def collect[B](pf: ЧастичнаяФункция[A, B]): CC[B]

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

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

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

Параметры
pf

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

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

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

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

Исходный код
def collectFirst[B](pf: PartialFunction[A, B]): Вариант[B]

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

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

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

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

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

Возвращает

значение типа Option, содержащее результат применения 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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

Исходный код
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], это можно сделать, добавив в смесь траит 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 если она пуста.

Унаследовано от 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

Проверяет, можно ли многократно пройти по этой итерируемой коллекции. Всегда true для Iterables и false для 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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

Унаследовано от 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$$Set4.html

Spec-Zone.ru

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