Spec-Zone.ru › Scala 3.2

Тракт BitSet.BitSet

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

тракт BitSet extends SortedSet[Int] with BitSetOps[BitSet]

Базовый тип битовых множеств.

Этот тракт предоставляет большинство операций над битовыми множествами BitSet независимо от их представления. Он наследуется всеми конкретными реализациями битовых множеств.

Суперанимации
17 типов
тракт BitSetOps[BitSet]
тракт SortedSet[Int]
тракт SortedSetFactoryDefaults[Int, SortedSet, Set]
тракт SortedSetOps[Int, SortedSet, BitSet]
тракт SortedOps[Int, BitSet]
тракт Set[Int]
тракт Equals
тракт SetOps[Int, Set, BitSet]
тракт Int => Boolean
тракт Iterable[Int]
тракт IterableFactoryDefaults[Int, Set]
тракт IterableOps[Int, Set, BitSet]
тракт IterableOnceOps[Int, Set, BitSet]
тракт IterableOnce[Int]
класс Object
тракт Matchable
класс Any
Известные подтипы
класс BitSet
класс BitSet1
класс BitSet2
класс BitSetN
класс BitSet

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

Исходный код
переопределение def empty: BitSet

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

Возвращает

пустое итерируемое множество типа C.

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

Исходный код
переопределение def unsorted: Set[Int]

Классы определений BitSetOps -> SortedSet -> SortedSetOps

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

Исходный код
окончательный def &(that: Set[Int]): C

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

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

Исходный код
окончательный def &~(that: Set[Int]): C

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

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

Исходный код
окончательный def ++(that: IterableOnce[Int]): C

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

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

Исходный код
окончательный def ++[B >: Int](suffix: IterableOnce[B]): CC[B]

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

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

Исходный код
окончательный def ^(other: BitSet): C

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

Исходный код
окончательный def addString(b: StringBuilder): StringBuilder

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

Пример:

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

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

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

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

Возвращает

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

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

Исходный код
окончательный def addString(b: StringBuilder, sep: String): StringBuilder

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

Пример:

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

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

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

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

sep

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

Возвращает

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

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

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

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

Пример:

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

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

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

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

end

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

sep

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

start

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

Возвращает

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

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

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

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

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

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

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

функция R => A

Возвращает

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

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

Исходный код
окончательный def apply(elem: Int): Boolean

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

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

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

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

Возвращает

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

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

Источник
def bitSetFactory: SpecificIterableFactory[Int, C]

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

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

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

функция A => T1

Возвращает

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

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

Источник
override def concat(other: IterableOnce[Int]): C

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

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

Пример:

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

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

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

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

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

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

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

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

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

that

другой набор

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

Источник
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 если два набора равны согласно описанию

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

Возвращает первый ключ коллекции.

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

Источник
def flatMap(f: Int => IterableOnce[Int]): C

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Например:

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
def flatten[B](implicit asIterable: Int => IterableOnce[B]): CC[B]

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

K

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

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

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

key

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

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

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

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

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

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

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

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

Source
def grouped(size: Int): Iterator[C]

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

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

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

Возвращает

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

См. также

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

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

Source
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

Source
def head: A

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

Source
def headOption: Option[A]

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

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

Возвращает

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

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

Source
def init: C

Часть набора без последнего элемента.

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

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

Source
def inits: Iterator[C]

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

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

Возвращает

итератор по всем начальным частям этого итерируемого набора

Пример

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

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

Source
override def intersect(other: Set[Int]): C

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

Параметры
that

набор для пересечения.

Возвращает

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

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

Source
override def isEmpty: Boolean

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

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

Возвращает

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

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

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

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

Возвращает

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

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

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

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

Примечание

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

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

Источник
def iterator: Iterator[Int]

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

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

Источник
def iteratorFrom(start: Int): Iterator[Int]

Создаёт итератор, содержащий все значения из этой коллекции, большие или равные start в соответствии с порядком этой коллекции. x.iteratorFrom(y) эквивалентно, но обычно более эффективно, чем x.from(y).iterator

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

Нижняя граница (включительно) итератора

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

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

Возвращает

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

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

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

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

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

Возвращает

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

Исключения
NoSuchElementException

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

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

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

Возвращает последний ключ коллекции.

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

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

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

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

Возвращает

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

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

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

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

Вызовы 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, который позволяет выполнять strict операции над лениво вычисляемыми парами или цепочками вызовов lazyZip. Поддерживается также неявное преобразование в Iterable[(A, B)].

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

Источник
def map(f: Int => Int): C

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

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

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

Возвращает

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

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

Источник
def map[B](f: Int => B)(implicit ev: Ordering[B]): CC[B]

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Source
def maxBefore(key: Int): Option[A]

Найти наибольший элемент, меньший заданного ключа.

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

Заданный ключ.

Возвращает

None если такого узла нет.

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Source
override def min[B >: Int](implicit ord: Ordering[B]): Int

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

Source
def minAfter(key: Int): Option[A]

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

Параметры значения
ключ

Указанный ключ.

Возвращает

None если такого узла нет.

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

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

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

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

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

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

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

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

f

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

Возвращает

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

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

Источник
final def ordering: Ordering[Int]

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

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

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

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

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

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

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

Пример:

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

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

A2

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

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

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

Возвращает

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

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

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

Перемножает элементы этого набора.

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

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

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

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

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

Возвращает

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

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

Источник
def range(from: Int, until: Int): C

Создаёт проекцию набора с нижней и верхней границами.

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

нижняя граница (включительно) проекции набора.

until

верхняя граница (исключительно) проекции набора.

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

Источник
def rangeFrom(from: Int): C

Создаёт проекцию набора без верхней границы.

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

нижняя граница (включительно) проекции набора.

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

Источник
def rangeImpl(from: Option[Int], until: Option[Int]): C

Создаёт проекцию набора. Любые изменения в проекции будут изменять исходный набор и наоборот.

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

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

нижняя граница (включительно) проекции набора. None, если нижней границы нет.

until

верхняя граница (исключительно) проекции набора. None, если верхней границы нет.

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

Источник
def rangeTo(to: Int): C

Создаёт проекцию набора без нижней границы.

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

верхняя граница (включительно) проекции набора.

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

Источник
def rangeUntil(until: Int): C

Создаёт проекцию набора без нижней границы.

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

верхняя граница (исключительно) проекции набора.

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
Тип параметров
B

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

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

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

z

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

Возвращает

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

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

Source
override def size: Int

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

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

Возвращает

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

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

Source
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

Source
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

Source
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

Source
def slice(from: Int, until: Int): C

Выбирает интервал элементов. Возвращаемая итерабельная коллекция состоит из всех элементов x, которые удовлетворяют инварианту:

from <= indexOf(x) < until

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

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

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

until

наименьший индекс для ИСКЛЮЧЕНИЯ из этой итерабельной коллекции.

Возвращает

итерабельная коллекция, содержащая элементы, большие или равные индексу from, простираясь до (но не включая) индекса until этой итерабельной коллекции.

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

Source
def sliding(size: Int, step: Int): Iterator[C]

Группирует элементы в блоки фиксированного размера, пропуская «скользящее окно» по ним (в отличие от разбиения на части, как в grouped.)

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

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

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

step

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

Возвращает

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

См. также

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

Пример

List(1, 2, 3, 4, 5).sliding(2, 2) = Iterator(List(1, 2), List(3, 4), List(5))

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

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

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

Группирует элементы в блоки фиксированного размера, пропуская «скользящее окно» по ним (в отличие от разбиения на части, как в grouped.)

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

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

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

Возвращает

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

См. также

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

Пример

List().sliding(2) = empty iterator

List(1).sliding(2) = Iterator(List(1))

List(1, 2).sliding(2) = Iterator(List(1, 2))

List(1, 2, 3).sliding(2) = Iterator(List(1, 2), List(2, 3))

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

Источник
def sortedIterableFactory: SortedIterableFactory[SortedSet]

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

Примечание

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

Источник
override def stepper[S <: Stepper[_]](implicit shape: StepperShape[Int, S]): S & EfficientSplit

Возвращает scala.collection.Stepper для элементов этого набора.

Stepper позволяет создать Java-поток для обработки набора, см. scala.jdk.StreamConverters. Для наборов, содержащих примитивные значения, Stepper может использоваться как итератор, который не упаковывает элементы.

Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элементов этого набора.

  • Для наборов Int, Short, Byte или Char, возвращается scala.collection.IntStepper

  • Для наборов Double или Float, возвращается scala.collection.DoubleStepper

  • Для наборов Long возвращается scala.collection.LongStepper

  • Для любого другого типа элементов возвращается scala.collection.AnyStepper

Обратите внимание, что этот метод переопределен в подклассах, а тип возвращаемого значения уточняется до S with EfficientSplit, например, scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных тегом scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Stepper могут быть преобразованы только в последовательные потоки.

Классы-определения BitSetOps -> IterableOnce
Наследуется от BitSetOps

Источник
def subsetOf(that: Set[Int]): Boolean

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

Параметры
that

набор для проверки.

Возвращает

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

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

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

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

Возвращает

итератор.

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

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

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

Параметры
len

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

Возвращает

итератор.

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

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

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

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

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

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

Параметры
num

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

Пример

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

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

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

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

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

Параметры
n

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

Возвращает

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

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

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

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

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

Параметры
n

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

Возвращает

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

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

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

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

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

Параметры
p

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

Возвращает

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

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

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

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

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

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

Параметры
f

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

Возвращает

логически тот же набор, что и этот

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

Источник
def to[C1](factory: Factory[Int, C1]): C1

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

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

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

Источник
def toArray[B >: Int : ClassTag]: Array[B]

Преобразование набора в массив.

Примечание реализации: НЕ вызывайте Array.from из этого метода.

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

Источник
def toBitMask: Массив[Long]

Создаёт маску битов для этого множества в виде нового массива длинных целых чисел

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

Источник
final def toBuffer[B >: Int]: Буфер[B]

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

Источник
def toIndexedSeq: IndexedSeq[A]

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

Источник
def toList: Список[A]

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

Источник
def toMap[K, V](implicit ev: Int <:< (K, V)): Карта[K, V]

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

Источник
def toSeq: Последовательность[A]

Возвращает

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

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

Источник
def toSet[B >: Int]: Множество[B]

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

Источник
override def toString(): String

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

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

Возвращает

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

Определяющие классы Множество -> Функция1 -> Итерируемый -> Любой
Наследуется от Множество

Источник
def toVector: Вектор[A]

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

Источник
def transpose[B](implicit asIterable: Int => Итерируемый[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: Множество[Целое]): C

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

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

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

Возвращает

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

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

Источник
def unzip[A1, A2](implicit asPair: Целое => (A1, A2)): (CC[A1], CC[A2])

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

val xs = Iterable(
           (1, "one"),
           (2, "two"),
           (3, "three")).unzip
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

тип первой половины пар элементов

A2

тип второй половины пар элементов

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

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

Возвращает

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

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

Источник
def unzip3[A1, A2, A3](implicit asTriple: Целое => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])

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

val xs = Iterable(
           (1, "one", '1'),
           (2, "two", '2'),
           (3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three),
//        Iterable(1, 2, 3))
Параметры типа
A1

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

A2

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

A3

тип третьего члена троек элементов

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

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

Возвращает

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

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

Источник
def view: Представление[A]

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

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

Источник
override def withFilter(p: Целое => Boolean): WithFilter[A, WithFilterCC, CC]

Создаёт нестрогий фильтр этого множества.

Примечание: различие между c filter p и c withFilter p состоит в том, что первое создаёт новую коллекцию, а второе лишь ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.

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

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

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

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к тем элементам этого множества, которые удовлетворяют предикату p.

Определяющие классы SortedSetFactoryDefaults -> IterableOps
Наследуется от SortedSetFactoryDefaults

Источник
def xor(other: BitSet): C

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

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

другой набор битов, участвующий в симметричной разности.

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

Исходный код
def zipAll[A1 >: Int, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

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

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

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

thatElem

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

thisElem

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

Возвращает

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

Если эта итерируемая коллекция короче, чем that, значения thisElem используются для заполнения результата.

Если that короче, чем эта итерируемая коллекция, значения thatElem используются для заполнения результата.

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

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

Комбинирует эту итерируемую коллекцию с её индексами.

Возвращает

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

Пример

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

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

Исходный код
final def |(that: Set[Int]): 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/BitSet.html

Spec-Zone.ru

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