Spec-Zone.ru › Scala 3.2

Класс ListSet.ListSet

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

sealed class ListSet[A] extends AbstractSet[A] with StrictOptimizedSetOps[A, ListSet, ListSet[A]] with IterableFactoryDefaults[A, ListSet] with DefaultSerializable

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

Элементы хранятся во внутренней структуре в обратном порядке вставки, то есть самый новый элемент находится в начале списка. Таким образом, такие методы, как head и tail, имеют сложность O(n), в то время как last и init имеют сложность O(1). Другие операции, такие как вставка или удаление элементов, также имеют сложность O(n), что делает эту коллекцию пригодной только для небольшого числа элементов.

Экземпляры ListSet представляют пустые множества; они могут быть созданы либо прямым вызовом конструктора, либо применением функции ListSet.empty.

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

тип элементов, содержащихся в этом множестве

Надтипы
23 типа
trait DefaultSerializable
trait Serializable
trait StrictOptimizedSetOps[A, ListSet, ListSet[A]]
trait StrictOptimizedSetOps[A, ListSet, ListSet[A]]
trait StrictOptimizedIterableOps[A, ListSet, ListSet[A]]
class AbstractSet[A]
trait Set[A]
trait SetOps[A, ListSet, ListSet[A]]
trait Iterable[A]
class AbstractSet[A]
trait Set[A]
trait Equals
trait SetOps[A, ListSet, ListSet[A]]
trait A => Boolean
class AbstractIterable[A]
trait Iterable[A]
trait IterableFactoryDefaults[A, ListSet]
trait IterableOps[A, ListSet, ListSet[A]]
trait IterableOnceOps[A, ListSet, ListSet[A]]
trait IterableOnce[A]
class Object
trait Matchable
class Any

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

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

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

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

Параметры
elem

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

Возвращает

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

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

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

Параметры
elem

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

Возвращает

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

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

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

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

Возвращает

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

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

Исходный код
override def iterableFactory: IterableFactory[ListSet]

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

Примечание

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

Классы определения Set -> Iterable -> Set -> Iterable -> IterableOps

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

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

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

Возвращает

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

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

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

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

Возвращает

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

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

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

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

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

Наследуется из SetOps

Исходный код
final def &~(that: Set[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

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

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

Definition Classes SetOps -> SetOps
Inherited from SetOps

Source
final def addString(b: StringBuilder): StringBuilder

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

Пример:

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

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

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

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

Возвращает

строка-построитель b, в которую были добавлены элементы.

Inherited from IterableOnceOps

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

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

Пример:

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

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

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

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

sep

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

Возвращает

строка-построитель b, в которую были добавлены элементы.

Inherited from IterableOnceOps

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

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

Пример:

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

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

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

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

end

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

sep

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

start

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

Возвращает

строка-построитель b, в которую были добавлены элементы.

Inherited from IterableOnceOps

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

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

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

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

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

функция R => A

Возвращает

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

Inherited from Function1

Source
final def apply(elem: A): Boolean

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

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

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

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

Возвращает

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

Inherited from SetOps

Source
def canEqual(that: Any): Boolean

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

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

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

Возвращает

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

Inherited from Set

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

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

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

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

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

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

Возвращает

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

Definition Classes StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Inherited from StrictOptimizedIterableOps

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

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

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

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

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

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

Возвращает

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

Пример

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

Inherited from IterableOnceOps

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

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

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

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

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

функция A => T1

Возвращает

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

Inherited from Function1

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

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

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

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

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

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

Возвращает

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

Inherited from IterableOps

Source
override 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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

start

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

xs

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

Возвращает

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

Примечание

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

Унаследовано из IterableOnceOps

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

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

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

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

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

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

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

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

xs

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

Возвращает

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

Примечание

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

Унаследовано из IterableOnceOps

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

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

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

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

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

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

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

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

Возвращает

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

Примечание

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

Унаследовано из IterableOnceOps

Source
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]

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

Returns

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

Definition Classes IterableFactoryDefaults -> IterableOps
Inherited from IterableFactoryDefaults

Source
override def equals(that: Any): Boolean

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

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

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

  • для каждого элемента 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
Value parameters
that

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

Returns

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

Definition Classes Set -> Equals -> Any
Inherited from Set

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

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

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

Value parameters
p

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

Returns

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

Inherited from IterableOnceOps

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

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

Value parameters
p

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

Returns

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

Definition Classes StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Inherited from StrictOptimizedIterableOps

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

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

Value parameters
pred

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

Returns

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

Definition Classes StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Inherited from StrictOptimizedIterableOps

Source
def find(p: A => Boolean): Option[A]

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

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

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

Value parameters
p

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

Returns

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

Inherited from IterableOnceOps

Source
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)
Type parameters
B

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

Value parameters
f

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

Returns

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

Definition Classes StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Inherited from StrictOptimizedIterableOps

Source
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)
Type parameters
B

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

Value parameters
asIterable

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

Returns

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

Definition Classes StrictOptimizedIterableOps -> IterableOps -> IterableOnceOps
Inherited from StrictOptimizedIterableOps

Source
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

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

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

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

Type parameters
A1

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

Value parameters
op

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

z

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

Returns

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

Inherited from IterableOnceOps

Source
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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

f

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

Возвращает

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

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

Исходный код
def maxOption[B >: A](implicit ord: Ordering[B]): Option[A]

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

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

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

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

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

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

Возвращает

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

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

Исходный код
def min[B >: A](implicit ord: Ordering[B]): A

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

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

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

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

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

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

Возвращает

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

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

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

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

Исходный код
def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

Исходный код
def minByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

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

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

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

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

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

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

f

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

Source
final def mkString: String

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

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

Возвращает

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

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

Source
final def mkString(sep: String): String

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

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

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

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

Возвращает

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

Пример

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

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

Source
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

Source
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

Source
def nonEmpty: Boolean

Проверяет, не является ли коллекция пустой.

Возвращает

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

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

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

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

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

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

Source
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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

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

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

Возвращает

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

Исключения
UnsupportedOperationException

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

Возвращает

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

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

Исходный код
protected def reversed: Iterable[A]

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

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

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

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

z

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

Возвращает

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

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

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

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

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

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

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

Пример:

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

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

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

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

z

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

Возвращает

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

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

Исходный код
def sizeCompare(that: Iterable[_]): Int

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

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

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

Возвращает

Значение x, где

x <  0       if this.size <  that.size
x == 0       if this.size == that.size
x >  0       if this.size >  that.size

Реализация метода напрямую не вызывает size; её время выполнения составляет O(this.size min that.size), а не O(this.size + that.size). Метод следует переопределять, если вычисление size является быстрым, а knownSize возвращает -1.

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

Исходный код
def sizeCompare(otherSize: Int): Int

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

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

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

Возвращает

Значение x, где

x <  0       if this.size <  otherSize
x == 0       if this.size == otherSize
x >  0       if this.size >  otherSize

Реализация метода напрямую не вызывает size; её время выполнения составляет O(size min otherSize), а не O(size). Метод следует переопределять, если вычисление size является быстрым, а knownSize возвращает -1.

См. также

sizeIs

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

Исходный код
final def sizeIs: SizeCompareOps

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

Эти операции реализованы с помощью sizeCompare(Int) и позволяют использовать более читаемые выражения:

this.sizeIs < size     // this.sizeCompare(size) < 0
this.sizeIs <= size    // this.sizeCompare(size) <= 0
this.sizeIs == size    // this.sizeCompare(size) == 0
this.sizeIs != size    // this.sizeCompare(size) != 0
this.sizeIs >= size    // this.sizeCompare(size) >= 0
this.sizeIs > size     // this.sizeCompare(size) > 0
Унаследовано от IterableOps

Исходный код
def slice(from: Int, until: Int): C

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

from <= indexOf(x) < until

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

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

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

until

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

Возвращает

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

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

Исходный код
def sliding(size: Int, step: Int): Iterator[C]

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

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

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

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

step

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

Возвращает

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

См. также

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

Пример

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

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

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

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

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

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

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

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

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

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

Возвращает

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

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

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

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

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

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

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

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

Возвращает

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

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

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

Возвращает scala.collection.Stepper для элементов этой коллекции.

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

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

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

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

  • Для коллекций Long возвращается scala.collection.LongStepper

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

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

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

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

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

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

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

Возвращает

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

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

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

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

Возвращает

итератор.

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

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

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

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

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

Возвращает

итератор.

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

Источник
def sum[B >: A](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

Source
def take(n: Int): C

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

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

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

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

Возвращает

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

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

Source
override def takeRight(n: Int): C

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

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

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

Source
def takeWhile(p: A => Boolean): C

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

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

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

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

Возвращает

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

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

Source
override def tapEach[U](f: A => U): C

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

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

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

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

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

Возвращает

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

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

Source
def to[C1](factory: Factory[A, C1]): C1

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

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

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

Source
def toArray[B >: A : ClassTag]: Array[B]

Преобразование коллекции в массив.

Примечание реализации: НЕ вызывайте Array.from из этого метода.

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

Source
final def toBuffer[B >: A]: Buffer[B]

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

Source
def toIndexedSeq: IndexedSeq[A]

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

Source
def toList: List[A]

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

Source
def toMap[K, V](implicit ev: A <:< (K, V)): Map[K, V]

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

Source
def toSeq: Seq[A]

Возвращает

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

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

Source
def toSet[B >: A]: Set[B]

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

Source
override def toString(): String

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

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

Возвращает

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

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

Source
def toVector: Vector[A]

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

Source
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

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

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

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

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

Возвращает

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

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

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

Spec-Zone.ru

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