Класс scala.collection.View.Collect
класс Collect[+A, B] extends AbstractView[B]
Конструкторы экземпляра
новый Collect(underlying: SomeIterableOps[A], pf: PartialFunction[A, B])
Члены-значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае false.
- Определяющие классы
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов возвращает значение хеша, соответствующее равенству значений: если две экземпляра типа значения сравниваются как true, то ## вернёт одинаковое значение хеша для каждого из них. Для null возвращает хешкод, где null.hashCode выбросит NullPointerException.
- возвращает
значение хеша, согласованное с ==
- Определяющие классы
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен благодаря неявной конверсии из Collect[A, B] вany2stringadd[Collect[A, B]] через метод any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
final def ++[B >: B](suffix: IterableOnce[B]): View[B]
Псевдоним для concat
- Определяющие классы
- IterableOps
- Аннотации
- @inline()
def ->[B](y: B): (Collect[A, B], B)
- Неявный
- Этот член добавлен благодаря неявной конверсии из Collect[A, B] вArrowAssoc[Collect[A, B]] через метод ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект получателя эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
final def addString(b: mutable.StringBuilder): mutable.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
- Аннотации
- @inline()
final def addString(b: mutable.StringBuilder, sep: String): mutable.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
- Аннотации
- @inline()
def addString(b: mutable.StringBuilder, start: String, sep: String, end: String): mutable.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
строковый буфер, в который добавляются элементы.
- start
начальная строка.
- sep
разделительная строка.
- end
конечная строка.
- returns
строковый буфер
b, в который были добавлены элементы.
- Definition Classes
- IterableOnceOps
final def asInstanceOf[T0]: T0
Приводит объект-получатель к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от правил стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] не выбросит исключение. В последнем примере, так как аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли элементы списка требуемому типу.
- returns
объект-получатель.
- Definition Classes
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром типаT0.
def className: String
Определяет префикс представления этого объекта toString.
Рекомендуется возвращать имя конкретного типа коллекции, а не подклассы реализации. Например, для ListMap этот метод должен возвращать "ListMap", а не "Map" (супертип) или "Node" (подкласс реализации).
По умолчанию метод возвращает "Iterable". Он переопределяется для основных типов коллекций "Seq", "IndexedSeq", "LinearSeq", "Buffer", "Set", "Map", "SortedSet", "SortedMap" и "View".
- returns
строковое представление, которое начинается с результата
toString, применённого к этой коллекции.
- Атрибуты
- protected[this]
- Definition Classes
- Iterable
def clone(): AnyRef
Создаёт копию объекта-получателя.
По умолчанию реализация метода clone зависит от платформы.
- returns
копия объекта-получателя.
final def coll: Collect.this.type
- returns
Эта коллекция как
C.
- Атрибуты
- protected
- Definition Classes
- Iterable → IterableOps
def collect[B](pf: PartialFunction[B, B]): View[B]
Создаёт новую коллекцию, применяя частичную функцию ко всем элементам этой коллекции, для которых функция определена.
- B
тип элементов возвращаемой коллекции.
- pf
частичная функция, которая фильтрует и отображает коллекцию.
- returns
новая коллекция, полученная путём применения данной частичной функции
pfк каждому элементу, для которого она определена, и сбор результатов. Порядок элементов сохраняется.
- Definition Classes
- IterableOps → IterableOnceOps
- Примечание
Переиспользование: После вызова этого метода, нужно отказаться от итератора, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора не определено, может измениться, и может привести к изменениям в новом итераторе.
def collectFirst[B](pf: PartialFunction[B, B]): Option[B]
Находит первый элемент в коллекции, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Примечание: может не завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- pf
частичная функция
- returns
значения типа Option, содержащее результат применения pf к первому элементу, для которого она определена, или
None, если такого элемента нет.
- Definition Classes
- IterableOnceOps
Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)
def concat[B >: B](suffix: IterableOnce[B]): View[B]
Возвращает новую итерируемую коллекцию, содержащую элементы из левого операнда, за которыми следуют элементы из правого операнда. Тип элемента итерируемой коллекции является наиболее специфическим суперклассом, охватывающим типы элементов двух операндов.
- B
тип элемента возвращаемой коллекции.
- suffix
траверсируемый объект для добавления.
- returns
новая итерируемая коллекция, которая содержит все элементы этой итерируемой коллекции, за которыми следуют все элементы
suffix.
- Definition Classes
- IterableOps
def copyToArray[B >: B](xs: Array[B], start: Int, len: Int): Int
Копирует элементы в массив, возвращая количество записанных элементов.
Заполняет заданный массив xs начиная с индекса start не более чем len элементами этой коллекции.
Копирование остановится, как только будут скопированы все элементы этой коллекции, или будет достигнут конец массива, или будет скопировано len элементов.
- B
тип элементов массива.
- xs
массив для заполнения.
- start
начальный индекс xs.
- len
максимальное количество элементов для копирования.
- returns
количество элементов, записанных в массив
- Definition Classes
- IterableOnceOps
- Note
Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование не определено и может измениться. Примечание: не будет завершаться для коллекций бесконечного размера.
def copyToArray[B >: B](xs: Array[B], start: Int): Int
Копирует элементы в массив, возвращая количество записанных элементов.
Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.
Копирование остановится, как только будут скопированы все элементы этой коллекции, или будет достигнут конец массива.
- B
тип элементов массива.
- xs
массив для заполнения.
- start
начальный индекс xs.
- returns
количество элементов, записанных в массив Примечание: не будет завершаться для коллекций бесконечного размера.
- Definition Classes
- IterableOnceOps
def copyToArray[B >: B](xs: Array[B]): Int
Копирует элементы в массив, возвращая количество записанных элементов.
Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.
Копирование остановится, как только будут скопированы все элементы этой коллекции, или будет достигнут конец массива.
- B
тип элементов массива.
- xs
массив для заполнения.
- returns
количество элементов, записанных в массив Примечание: не будет завершаться для коллекций бесконечного размера.
- Definition Classes
- IterableOnceOps
def corresponds[B](that: IterableOnce[B])(p: (B, B) => Boolean): Boolean
Проверяет, соответствует ли каждый элемент итератора этой коллекции соответствующему элементу другой коллекции, удовлетворяя предикат теста.
- B
тип элементов
that- that
другая коллекция
- p
предикат теста, который связывает элементы из обеих коллекций
- returns
trueесли обе коллекции имеют одинаковую длину иp(x, y)естьtrueдля всех соответствующих элементовxэтого итератора иyизthat, иначеfalse
- Definition Classes
- IterableOnceOps
def count(p: (B) => Boolean): Int
Подсчитывает количество элементов в коллекции, которые удовлетворяют предикату.
- p
предикат, используемый для проверки элементов.
- returns
количество элементов, удовлетворяющих предикату
p.
- Definition Classes
- IterableOnceOps
def drop(n: Int): View[B]
Выбирает все элементы, кроме первых n.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен.
- n
количество элементов, которые нужно удалить из этой итерируемой коллекции.
- returns
итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, за исключением первых
nэлементов, или пустая итерируемая коллекция, если эта итерируемая коллекция содержит меньше чемnэлементов. Еслиnотрицательно, не удаляйте элементы.
- Definition Classes
- IterableOps → IterableOnceOps
- Note
Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван, и использовать только возвращенный итератор. Использование старого итератора не определено, может измениться и может привести к изменениям нового итератора.
def dropRight(n: Int): View[B]
Выбирает все элементы, кроме последних n.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
- n
количество элементов, которые необходимо удалить из этого итерируемого набора.
- returns
итерируемый набор, состоящий из всех элементов этого итерируемого набора, кроме последних
nэлементов, или пустой итерируемый набор, если в этом итерируемом наборе меньшеnэлементов. Еслиnотрицательно, то элементы не удаляются.
- Definition Classes
- IterableOps
def dropWhile(p: (B) => Boolean): View[B]
Удаляет самое длинное префиксное подмножество элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.
- p
Предикат, используемый для проверки элементов.
- returns
самое длинное суффиксное подмножество этого итерируемого набора, первый элемент которого не удовлетворяет предикату
p.
- Definition Classes
- IterableOps → IterableOnceOps
- Note
Переиспользование: После вызова этого метода необходимо отбросить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора не определено, может измениться, а также может привести к изменениям в новом итераторе.
def empty: View[B]
Пустой итерируемый набор того же типа, что и этот итерируемый набор
- returns
пустой итерируемый набор типа
C.
- Definition Classes
- View → IterableFactoryDefaults → IterableOps
def ensuring(cond: (Collect[A, B]) => Boolean, msg: => Any): Collect[A, B]
- Implicit
- Этот член добавлен неявным преобразованием из Collect[A, B] в Ensuring[Collect[A, B]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: (Collect[A, B]) => Boolean): Collect[A, B]
- Implicit
- Этот член добавлен неявным преобразованием из Collect[A, B] в Ensuring[Collect[A, B]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Collect[A, B]
- Implicit
- Этот член добавлен неявным преобразованием из Collect[A, B] в Ensuring[Collect[A, B]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean): Collect[A, B]
- Implicit
- Этот член добавлен неявным преобразованием из Collect[A, B] в Ensuring[Collect[A, B]] с помощью метода Ensuring в scala.Predef.
- Definition Classes
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).
Метод eq реализует отношение эквивалентности для не-нулевых экземпляров AnyRef, и имеет три дополнительных свойства:
-
Он согласован: для любых не-нулевых экземпляров
x и y типа AnyRef, множественные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-нулевого экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode, важно убедиться, что их поведение согласуется с равенством ссылок. Поэтому, если два объекта являются взаимными ссылками (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое хэш-значение (o1.hashCode == o2.hashCode).
- возвращает
trueесли аргумент является ссылкой на объект-получатель;falseв противном случае.
- Определяющие классы
- AnyRef
def equals(arg0: AnyRef): Boolean
Метод равенства для ссылочных типов. Реализация по умолчанию делегирует в eq.
См. также equals в scala.Any.
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
def exists(p: (B) => Boolean): Boolean
Проверяет, выполняется ли предикат хотя бы для одного элемента этой коллекции.
Примечание: может не завершиться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- возвращает
trueесли данный предикатpудовлетворяется хотя бы одним элементом этой коллекции, иначеfalse
- Определяющие классы
- IterableOnceOps
def filter(pred: (B) => Boolean): View[B]
Выбирает все элементы этой итерируемой коллекции, которые удовлетворяют предикату.
- возвращает
новый итератор, состоящий из всех элементов этой итерируемой коллекции, которые удовлетворяют данному предикату
p. Порядок элементов сохраняется.
- Определяющие классы
- IterableOps → IterableOnceOps
def filterNot(pred: (B) => Boolean): View[B]
Выбирает все элементы этой итерируемой коллекции, которые не удовлетворяют предикату.
- pred
предикат, используемый для проверки элементов.
- возвращает
новая итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, которые не удовлетворяют данному предикату
pred. Их порядок может не сохраняться.
- Определяющие классы
- IterableOps → IterableOnceOps
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.
Детали того, когда и будет ли вызываться метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
def find(p: (B) => Boolean): Option[B]
Находит первый элемент коллекции, удовлетворяющий предикату, если таковой существует.
Примечание: может не завершиться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен.
- p
предикат, используемый для проверки элементов.
- возвращает
опциональное значение, содержащее первый элемент в коллекции, который удовлетворяет
p, илиNone, если такового не существует.
- Определяющие классы
- IterableOnceOps
def flatMap[B](f: (B) => IterableOnce[B]): View[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
функция, применяемая к каждому элементу.
- returns
новая итерируемая коллекция, полученная в результате применения заданной функции со значениями в виде коллекции
fк каждому элементу этой итерируемой коллекции и конкатенации результатов.
- Определяющие классы
- IterableOps → IterableOnceOps
- Примечание
Повторное использование: после вызова этого метода следует отказаться от итератора, к которому он был применен, и использовать только возвращенный итератор. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе.
def flatten[B](implicit asIterable: (B) => IterableOnce[B]): View[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.- returns
новая итерируемая коллекция, полученная в результате конкатенации всех итерируемых коллекций элементов.
- Определяющие классы
- IterableOps → IterableOnceOps
- Примечание
Повторное использование: после вызова этого метода следует отказаться от итератора, к которому он был применен, и использовать только возвращенный итератор. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе.
def fold[A1 >: B](z: A1)(op: (A1, A1) => A1): A1
Сворачивает элементы этой коллекции, используя указанный ассоциативный бинарный оператор. Реализация по умолчанию в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективных порядков обхода.
Порядок, в котором операции выполняются над элементами, не указан и может быть недетерминированным.
Примечание: не будет завершаться для коллекций бесконечного размера.
- A1
тип параметра для бинарного оператора, супертип
A.- z
нейтральный элемент для операции сворачивания; может быть добавлен к результату произвольное количество раз и не должен изменять результат (например,
Nilдля конкатенации списков, 0 для сложения или 1 для умножения).- op
бинарный оператор, который должен быть ассоциативным.
- returns
результат применения оператора сворачивания
opмежду всеми элементами иz, илиz, если эта коллекция пуста.
- Определяющие классы
- IterableOnceOps
def foldLeft[B](z: B)(op: (B, B) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этой коллекции, слева направо.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
- B
результирующий тип бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этой коллекции, слева направо, с начальным значениемzслева:op(...op(z, x_1), x_2, ..., x_n)
где
x1, ..., xn- элементы этой коллекции. Возвращаетz, если эта коллекция пуста.
- Определяющие классы
- IterableOnceOps
def foldRight[B](z: B)(op: (B, B) => B): B
Применяет бинарный оператор ко всем элементам этой коллекции и начальному значению, справа налево.
Примечание: не будет завершаться для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен или оператор не является ассоциативным и коммутативным.
- B
результирующий тип бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этой коллекции, справа налево, с начальным значениемzсправа:op(x_1, op(x_2, ... op(x_n, z)...))
где
x1, ..., xn- элементы этой коллекции. Возвращаетz, если эта коллекция пуста.
- Определяющие классы
- IterableOnceOps
def forall(p: (B) => Boolean): Boolean
Проверяет, выполняется ли предикат для всех элементов этой коллекции.
Примечание: может не завершаться для коллекций бесконечного размера.
- p
предикат, используемый для проверки элементов.
- returns
true, если эта коллекция пуста или заданный предикатpвыполняется для всех элементов этой коллекции, иначеfalse.
- Определяющие классы
- IterableOnceOps
def foreach[U](f: (B) => U): Unit
Применяет f к каждому элементу для его побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.
- Definition Classes
- IterableOnceOps
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой format. Форматные строки аналогичны String.format (@см. java.lang.String.format).
- Неявный
- Этот член добавляется с помощью неявного преобразования из Collect[A, B] в StringFormat[Collect[A, B]], выполняемого методом StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Аннотации
- @inline()
def fromSpecific(coll: IterableOnce[B]): View[B]
Определяет, как преобразовать заданный Iterable[A] в коллекцию типа C.
Этот процесс может быть выполнен строго или нестрого (т.е. без оценки элементов результирующих коллекций). Другими словами, этот метод определяет модель оценки коллекции.
- Атрибуты
- protected
- Definition Classes
- IterableFactoryDefaults → IterableOps
- Примечание
-
При реализации пользовательского типа коллекции и уточнении
,Cдо нового типа, необходимо переопределить этот метод (в противном случае компилятор выдаст ошибку). В общем случае, когдаC =:= CC[A], это можно сделать, добавив в миксины IterableFactoryDefaults, который реализует метод с использованием iterableFactory.Как видно из аннотации
@uncheckedVariance, использование этого метода может быть небезопасным. Однако, пока он вызывается сIterable[A]полученным изthisколлекции (как это происходит в реализации операций, где мы используемView[A]), это безопасно.
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса во время выполнения объекта.
- returns
объект класса, соответствующий типу получателя во время выполнения.
def groupBy[K](f: (B) => K): immutable.Map[K, View[B]]
Разбивает эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией-дискриминатором.
Примечание: даже при применении к представлению или ленивой коллекции она всегда принудительно оценивает элементы.
- K
тип ключей, возвращаемых функцией-дискриминатором.
- f
функция-дискриминатор.
- returns
-
Карта, где ключи сопоставлены с итерируемыми коллекциями, при этом выполняется следующее инвариантное условие:
(xs groupBy f)(k) = xs filter (x => f(x) == k)
То есть каждый ключ
kсвязан с итерируемой коллекцией тех элементовx, для которыхf(x)равноk.
- Definition Classes
- IterableOps
def groupMap[K, B](key: (B) => K)(f: (B) => B): immutable.Map[K, View[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)
Примечание: даже при применении к представлению или ленивой коллекции она всегда принудительно оценивает элементы.
- K
тип ключей, возвращаемых функцией-дискриминатором
- B
тип значений, возвращаемых функцией преобразования
- key
функция-дискриминатор
- f
функция преобразования элемента
- Definition Classes
- IterableOps
def groupMapReduce[K, B](key: (B) => K)(f: (B) => B)(reduce: (B, B) => B): immutable.Map[K, B]
Разделяет эту итерируемую коллекцию на карту по функции-дискриминатору key. Все значения, имеющие одинаковый дискриминатор, затем преобразуются функцией value и затем сводятся к одному значению с помощью функции reduce.
Это эквивалентно groupBy(key).mapValues(_.map(f).reduce(reduce)), но более эффективно.
def occurrences[A](as: Seq[A]): Map[A, Int] = as.groupMapReduce(identity)(_ => 1)(_ + _)
Примечание: Даже при применении к представлению или ленивой коллекции она всегда будет принудительно обрабатывать элементы.
- Definition Classes
- IterableOps
def grouped(size: Int): Iterator[View[B]]
Разделяет элементы на итерируемые коллекции фиксированного размера.
- size
количество элементов в группе
- returns
Итератор, генерирующий итерируемые коллекции размером
size, за исключением последней, которая будет меньше sizesize, если элементы не делятся на размер группы без остатка.
- Definition Classes
- IterableOps
- См. также
scala.collection.Iterator, метод
grouped
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- returns
значение кода хэша для этого объекта.
def head: B
Выбирает первый элемент этой итерируемой коллекции.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
первый элемент этой итерируемой коллекции.
- Definition Classes
- IterableOps
- Исключения
NoSuchElementException, если итерируемая коллекция пуста.
def headOption: Option[B]
Возвращает необязательный первый элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
первый элемент этой итерируемой коллекции, если она непуста,
Noneесли она пуста.
- Definition Classes
- IterableOps
def init: View[B]
Часть коллекции без последнего элемента.
Примечание: Даже при применении к представлению или ленивой коллекции она всегда будет принудительно обрабатывать элементы.
- Definition Classes
- IterableOps
def inits: Iterator[View[B]]
Итерируется по начальным частям этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее - пустой итерируемой коллекцией, а промежуточные значения - результаты последовательных применений init.
Примечание: Даже при применении к представлению или ленивой коллекции она всегда будет принудительно обрабатывать элементы.
- returns
итератор по всем начальным частям этой итерируемой коллекции
- Definition Classes
- IterableOps
List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)
def isEmpty: Boolean
Проверяет, является ли коллекция пустой.
Примечание: Реализации в дочерних классах, которые не являются многократно проходимыми, должны заботиться о том, чтобы не потреблять элементы, когда isEmpty вызывается.
- returns
trueесли коллекция не содержит элементов,falseв противном случае.
- Definition Classes
- IterableOnceOps
final def isInstanceOf[T0]: Boolean
Проверяет, соответствует ли динамический тип объекта-приёмника типу T0.
Обратите внимание, что результат проверки зависит от правил стирания типов Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере из-за стирания аргумента типа во время компиляции невозможно проверить, соответствуют ли элементы списка указанному типу.
- returns
trueесли объект-приёмник является экземпляром стирания типаT0;falseв противном случае.
- Definition Classes
- Any
def isTraversableAgain: Boolean
Проверяет, можно ли многократно проходить по этому итерируемому набору. Всегда истинно для Iterables и ложно для Iterators, если не переопределено.
- returns
trueесли он может быть многократно пройден,falseв противном случае.
- Definition Classes
- IterableOps → IterableOnceOps
def iterableFactory: IterableFactory[View]
Объект-компаньон этого представления, предоставляющий различные методы фабрики.
- Definition Classes
- View → Iterable → IterableOps
- Note
При реализации пользовательского типа коллекции и уточнении
CCдо нового типа, этот метод необходимо переопределить, чтобы вернуть фабрику для нового типа (в противном случае компилятор выдаст ошибку).
def iterator: Iterator[B]
Итератор может быть использован только один раз
- Definition Classes
- Collect → IterableOnce
def knownSize: Int
- returns
Количество элементов в этом наборе, если его можно вычислить недорого, -1 в противном случае. Недорого обычно означает: Не требует обхода коллекции.
- Definition Classes
- IterableOnce
def last: B
Выбирает последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
Последний элемент этого итерируемого набора.
- Definition Classes
- IterableOps
- Exceptions thrown
NoSuchElementExceptionЕсли итерируемый набор пуст.
def lastOption: Option[B]
Возвращает последний элемент.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- returns
последний элемент этого итерируемого набора, если он не пуст,
Noneесли он пуст.
- Definition Classes
- IterableOps
def lazyZip[B](that: Iterable[B]): LazyZip2[B, B, Collect.this.type]
Аналогично 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
итерируемый набор, предоставляющий второй элемент каждой пары
- returns
декоратор
LazyZip2, который позволяет выполнять строгие операции над лениво вычисляемыми парами или объединять вызовыlazyZip. Также поддерживается неявное преобразование вIterable[(A, B)].
- Definition Classes
- Iterable
def map[B](f: (B) => B): View[B]
Создает новый итерируемый набор, применяя функцию ко всем элементам этого итерируемого набора.
- B
тип элементов возвращаемого итерируемого набора.
- f
функция, которую нужно применить к каждому элементу.
- returns
новый итерируемый набор, полученный путем применения данной функции
fк каждому элементу этого итерируемого набора и сбора результатов.
- Definition Classes
- IterableOps → IterableOnceOps
- Note
Повторное использование: после вызова этого метода нужно выбросить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора не определено, может быть изменено и может привести к изменениям в новом итераторе тоже.
def max[B >: B](implicit ord: math.Ordering[B]): B
Находит наибольший элемент.
- B
Тип, над которым определено упорядочение.
- ord
Упорядочение, используемое для сравнения элементов.
- returns
наибольший элемент этой коллекции относительно упорядочения
ord.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationExceptionесли эта коллекция пуста.
def maxBy[B](f: (B) => B)(implicit cmp: math.Ordering[B]): B
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Порядок, который будет использоваться для сравнения элементов.
- returns
первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно порядка
cmp.
- Определяющие классы
- IterableOnceOps
- Выбрасываемые исключения
UnsupportedOperationExceptionесли эта коллекция пуста.
def maxByOption[B](f: (B) => B)(implicit cmp: math.Ordering[B]): Option[B]
Находит первый элемент, который даёт наибольшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Порядок, который будет использоваться для сравнения элементов.
- returns
опциональное значение, содержащее первый элемент этой коллекции с наибольшим значением, измеренным функцией f относительно порядка
cmp.
- Определяющие классы
- IterableOnceOps
def maxOption[B >: B](implicit ord: math.Ordering[B]): Option[B]
Находит наибольший элемент.
- B
Тип, над которым определён порядок.
- ord
Порядок, который будет использоваться для сравнения элементов.
- returns
опциональное значение, содержащее наибольший элемент этой коллекции относительно порядка
ord.
- Определяющие классы
- IterableOnceOps
def min[B >: B](implicit ord: math.Ordering[B]): B
Находит наименьший элемент.
- B
Тип, над которым определён порядок.
- ord
Порядок, который будет использоваться для сравнения элементов.
- returns
наименьший элемент этой коллекции относительно порядка
ord.
- Определяющие классы
- IterableOnceOps
- Выбрасываемые исключения
UnsupportedOperationExceptionесли эта коллекция пуста.
def minBy[B](f: (B) => B)(implicit cmp: math.Ordering[B]): B
Находит первый элемент, который даёт наименьшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Порядок, который будет использоваться для сравнения элементов.
- returns
первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно порядка
cmp.
- Определяющие классы
- IterableOnceOps
- Выбрасываемые исключения
UnsupportedOperationExceptionесли эта коллекция пуста.
def minByOption[B](f: (B) => B)(implicit cmp: math.Ordering[B]): Option[B]
Находит первый элемент, который даёт наименьшее значение, измеренное функцией f.
- B
Тип результата функции f.
- f
Функция измерения.
- cmp
Порядок, который будет использоваться для сравнения элементов.
- returns
опциональное значение, содержащее первый элемент этой коллекции с наименьшим значением, измеренным функцией f относительно порядка
cmp.
- Определяющие классы
- IterableOnceOps
def minOption[B >: B](implicit ord: math.Ordering[B]): Option[B]
Находит наименьший элемент.
- B
Тип, над которым определён порядок.
- ord
Порядок, который будет использоваться для сравнения элементов.
- returns
опциональное значение, содержащее наименьший элемент этой коллекции относительно порядка
ord.
- Определяющие классы
- IterableOnceOps
final def mkString: String
Отображает все элементы этого набора в строке.
Делегирует вызов addString, который можно переопределить.
- returns
строковое представление этого набора. В результирующей строке строковые представления (относительно метода
toString) всех элементов этого набора следуют друг за другом без разделительной строки.
- Классы определения
- IterableOnceOps
- Аннотации
- @inline()
final def mkString(sep: String): String
Отображает все элементы этого набора в строке с использованием разделительной строки.
Делегирует вызов addString, который можно переопределить.
- sep
разделительная строка.
- returns
строковое представление этого набора. В результирующей строке строковые представления (относительно метода
toString) всех элементов этого набора разделены строкойsep.
- Классы определения
- IterableOnceOps
- Аннотации
- @inline()
List(1, 2, 3).mkString("|") = "1|2|3"
final def mkString(start: String, sep: String, end: String): String
Отображает все элементы этого набора в строке, используя начальную, конечную и разделительные строки.
Делегирует вызов addString, который можно переопределить.
- start
начальная строка.
- sep
разделительная строка.
- end
конечная строка.
- returns
строковое представление этого набора. Результирующая строка начинается со строки
startи заканчивается строкойend. Внутри строковые представления (относительно методаtoString) всех элементов этого набора разделены строкойsep.
- Классы определения
- IterableOnceOps
List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- returns
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Классы определения
- AnyRef
def newSpecificBuilder: Builder[B, View[B]]
- returns
строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, View или immutable.LazyList), реализация этого метода возможна, но полученный
Builderнарушит ленивость. Поэтому операции предпочтительнее реализовывать с помощьюfromSpecificвместо этого метода.
- Атрибуты
- protected
- Классы определения
- IterableFactoryDefaults → IterableOps
- Примечание
-
При реализации пользовательского типа коллекции и уточнении
,Cдо нового типа этот метод необходимо переопределить (иначе компилятор выдаст ошибку). В общем случае, когдаC =:= CC[A], это можно сделать, смешав в себе трайт IterableFactoryDefaults, который реализует метод с использованием iterableFactory.Как свидетельствует аннотация
@uncheckedVariance, использование этого метода может быть некорректным. Однако, если возвращаемый билдер заполняется только значениямиA, взятыми из экземпляраthis, это безопасно.
def nonEmpty: Boolean
Проверяет, является ли коллекция непустой.
- returns
trueесли коллекция содержит как минимум один элемент;falseв противном случае.
- Классы определения
- IterableOnceOps
- Аннотации
- @deprecatedOverriding("nonEmpty is defined as !isEmpty; override isEmpty instead", "2.13.0")
final def notify(): Unit
Разбуживает один поток, ожидающий монитора объекта-получателя.
- Классы определения
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
final def notifyAll(): Unit
Разбуживает все потоки, ожидающие монитора объекта-получателя.
- Классы определения
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
def partition(p: (B) => Boolean): (View[B], View[B])
Пара из элементов, удовлетворяющих предикату p и, во-вторых, всех элементов, которые не удовлетворяют ему. Интересно тем, что разделяет коллекцию на две части.
Представленная здесь реализация по умолчанию должна пройти по коллекции дважды. Строгие коллекции имеют переопределённую версию partition в StrictOptimizedIterableOps, которая требует только одного прохода.
- Definition Classes
- IterableOps
def partitionMap[A1, A2](f: (B) => Either[A1, A2]): (View[A1], View[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
- returns
пара итерируемых коллекций: первая содержит значения, возвращенные функцией
fи обернутые в scala.util.Left, а вторая — значения, обернутые в scala.util.Right.
- Definition Classes
- IterableOps
def product[B >: B](implicit num: math.Numeric[B]): B
Перемножает элементы этой коллекции.
- B
тип результата операции
*.- num
явный параметр, определяющий набор операций с числами, включающий операцию
*для формирования произведения.- returns
произведение всех элементов этой коллекции относительно операции
*вnum.
- Definition Classes
- IterableOnceOps
def reduce[B >: B](op: (B, B) => B): B
Сводит элементы этой коллекции с помощью указанной ассоциативной бинарной операции.
Порядок выполнения операций над элементами не определен и может быть не детерминированным.
- B
Тип параметра для бинарной операции, являющийся супертипом
A.- op
Бинарная операция, которая должна быть ассоциативной.
- returns
Результат применения оператора reduce
opмежду всеми элементами, если коллекция не пустая.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если коллекция пустая.
def reduceLeft[B >: B](op: (B, B) => B): B
Применяет бинарную операцию ко всем элементам этой коллекции слева направо.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и не коммутативен.
- B
тип результата бинарной операции.
- op
бинарная операция.
- returns
-
результат вставки
opмежду последовательными элементами этой коллекции слева направо:op( op( ... op(x_1, x_2) ..., x_{n-1}), x_n)где
x1, ..., xn— элементы этой коллекции.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если коллекция пустая.
def reduceLeftOption[B >: B](op: (B, B) => B): Option[B]
Опциональное применение бинарной операции ко всем элементам этой коллекции слева направо.
Примечание: не завершит работу для коллекций бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен или оператор не ассоциативен и не коммутативен.
- B
тип результата бинарной операции.
- op
бинарная операция.
- returns
значение Option, содержащее результат
reduceLeft(op)если коллекция не пустая,Noneв противном случае.
- Definition Classes
- IterableOnceOps
def reduceOption[B >: B](op: (B, B) => B): Option[B]
Уменьшает элементы этого набора, если таковые имеются, с использованием указанного ассоциативного бинарного оператора.
Порядок выполнения операций над элементами не определен и может быть недетерминированным.
- B
Параметр типа для бинарного оператора, супертип
A.- op
Бинарный оператор, который должен быть ассоциативным.
- returns
Значение типа Option, содержащее результат применения оператора reduce к
opмежду всеми элементами, если набор непустой, иNoneв противном случае.
- Definition Classes
- IterableOnceOps
def reduceRight[B >: B](op: (B, B) => B): B
Применяет бинарный оператор ко всем элементам этого набора, слева направо.
Примечание: не будет завершаться для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого набора, справа налево:op(x_1, op(x_2, ..., op(x_{n-1}, x_n)...))где
x1, ..., xn— это элементы этого набора.
- Definition Classes
- IterableOnceOps
- Exceptions thrown
UnsupportedOperationException, если этот набор пуст.
def reduceRightOption[B >: B](op: (B, B) => B): Option[B]
Опционально применяет бинарный оператор ко всем элементам этого набора, справа налево.
Примечание: не будет завершаться для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен или оператор не является ассоциативным и коммутативным.
- B
тип результата бинарного оператора.
- op
бинарный оператор.
- returns
значение типа Option, содержащее результат
reduceRight(op), если этот набор непустой,Noneв противном случае.
- Definition Classes
- IterableOnceOps
def reversed: Iterable[B]
- Attributes
- protected
- Definition Classes
- IterableOnceOps
def scan[B >: B](z: B)(op: (B, B) => B): View[B]
Вычисляет префиксное сканирование элементов набора.
Примечание: нейтральный элемент z может быть применён более одного раза.
- B
тип элементов результирующего набора
- z
нейтральный элемент для оператора
op- op
ассоциативный оператор для сканирования
- returns
новый итерабельный набор, содержащий префиксное сканирование элементов в этом итерабельном наборе
- Definition Classes
- IterableOps
def scanLeft[B](z: B)(op: (B, B) => B): View[B]
Создаёт итерабельный набор, содержащий кумулятивные результаты применения оператора слева направо, включая начальное значение.
Примечание: не будет завершаться для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
- B
тип элементов в результирующем наборе
- z
начальное значение
- op
бинарный оператор, применяемый к промежуточному результату и элементу
- returns
набор с промежуточными результатами
- Definition Classes
- IterableOps → IterableOnceOps
- Note
Переиспользование: после вызова этого метода нужно удалить итератор, на котором он был вызван, и использовать только возвращённый итератор. Использование старого итератора неопределено, может быть изменено, и может привести к изменениям в новом итераторе тоже.
def scanRight[B](z: B)(op: (B, B) => B): View[B]
Создаёт набор, содержащий кумулятивные результаты применения оператора справа налево. Голова набора — это последний кумулятивный результат.
Примечание: не будет завершаться для наборов бесконечного размера.
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
Примечание: даже при применении к представлению или ленивому набору он всегда будет форсировать элементы.
Пример:
List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
- B
тип элементов в результирующем наборе
- z
начальное значение
- op
бинарный оператор, применяемый к промежуточному результату и элементу
- returns
набор с промежуточными результатами
- Definition Classes
- IterableOps
def size: Int
Размер этого набора.
Примечание: не будет завершаться для наборов бесконечного размера.
- возвращает
количество элементов в этом наборе.
- Определяющие классы
- IterableOnceOps
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.
- Определяющие классы
- 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
- Аннотации
- @inline()
def slice(from: Int, until: Int): View[B]
Выбирает интервал элементов. Возвращаемый итерируемый набор состоит из всех элементов x, которые удовлетворяют условию:
from <= indexOf(x) < until
Примечание: может возвращать разные результаты для разных запусков, если тип базового набора не упорядочен.
- from
наименьший индекс для включения из этого итерируемого набора.
- until
наименьший индекс для ИСКЛЮЧЕНИЯ из этого итерируемого набора.
- возвращает
итерируемый набор, содержащий элементы, большие или равные индексу
from, продолжающийся до (но не включая) индексаuntilэтого итерируемого набора.
- Определяющие классы
- IterableOps → IterableOnceOps
- Примечание
Переиспользование: после вызова этого метода следует отбросить итератор, на котором он был вызван, и использовать только возвращенный итератор. Использование старого итератора неопределено, может измениться и может привести к изменениям в новом итераторе также.
def sliding(size: Int, step: Int): Iterator[View[B]]
Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" над ними (в отличие от разбиения, как это делается в grouped.)
- size
количество элементов в группе
- step
расстояние между первыми элементами последовательных групп
- возвращает
Итератор, генерирующий итерируемые наборы размера
size, за исключением последнего элемента (который может быть единственным элементом), который будет усечен, если оставшихся элементов для группирования меньшеsize.
- Определяющие классы
- IterableOps
- См. также
scala.collection.Iterator, метод
sliding
def sliding(size: Int): Iterator[View[B]]
Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" над ними (в отличие от разбиения, как это делается в grouped.) Шаг "скользящего окна" установлен в один.
- size
количество элементов в группе
- возвращает
Итератор, генерирующий итерируемые наборы размера
size, за исключением последнего элемента (который может быть единственным элементом), который будет усечен, если оставшихся элементов для группирования меньшеsize.
- Определяющие классы
- IterableOps
- См. также
scala.collection.Iterator, метод
sliding
def span(p: (B) => Boolean): (View[B], View[B])
Разделяет эту итерируемую коллекцию на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- p
предикат проверки
- returns
пара, состоящая из самого длинного префикса этой итерируемой коллекции, элементы которого удовлетворяют
p, и остальной части этой итерируемой коллекции.
- Definition Classes
- IterableOps → IterableOnceOps
- Note
Повторное использование: после вызова этого метода нужно удалить итератор, на котором он был вызван, и использовать только возвращённые итераторы. Использование старого итератора неопределённо, может измениться и может привести к изменениям в новых итераторах тоже.
def splitAt(n: Int): (View[B], View[B])
Разделяет эту итерируемую коллекцию на пару префикс/суффикс в заданной позиции.
Примечание: c splitAt n эквивалентно (но, возможно, более эффективно, чем) (c take n, c drop n).
Примечание: может возвращать разные результаты для разных запусков, если тип базовой коллекции не упорядочен.
- n
позиция, в которой нужно разделить.
- returns
пара итерируемых коллекций, состоящая из первых
nэлементов этой итерируемой коллекции и других элементов.
- Definition Classes
- IterableOps → IterableOnceOps
- Note
Повторное использование: после вызова этого метода нужно удалить итератор, на котором он был вызван, и использовать только возвращённые итераторы. Использование старого итератора неопределённо, может измениться и может привести к изменениям в новых итераторах тоже.
def stepper[S <: Stepper[_]](implicit shape: StepperShape[B, S]): S
Возвращает Stepper для элементов этой коллекции.
Stepper позволяет создавать Java-поток для работы с коллекцией, см. scala.jdk.StreamConverters. Для коллекций, содержащих примитивные значения, Stepper может использоваться как итератор, который не упаковывает элементы.
Неявный параметр StepperShape определяет тип возвращаемого Stepper в соответствии с типом элементов этой коллекции.
-
Для коллекций
Int, Short, Byte или Char, возвращается IntStepperДля коллекций Double или Float, возвращается DoubleStepperДля коллекций Long, возвращается LongStepperДля любого другого типа элемента возвращается AnyStepperОбратите внимание, что этот метод переопределяется в подклассах, и тип возвращаемого значения уточняется до S with EfficientSplit, например IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, тогда как обычные Steppers могут быть преобразованы только в последовательные потоки.
- Definition Classes
- IterableOnce
def stringPrefix: String
- Attributes
- protected[this]
- Definition Classes
- View → Iterable
- Annotations
- @deprecatedOverriding("Compatibility override", "2.13.0")
def sum[B >: B](implicit num: math.Numeric[B]): B
Суммирует элементы этой коллекции.
- B
тип результата оператора
+.- num
неявный параметр, определяющий набор числовых операций, включающий оператор
+для использования при формировании суммы.- returns
сумма всех элементов этой коллекции по отношению к оператору
+вnum.
- Definition Classes
- IterableOnceOps
final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
def tail: View[B]
Остальная часть коллекции без её первого элемента.
- Definition Classes
- IterableOps
def tails: Iterator[View[B]]
Итерирует по хвостам этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией; промежуточные значения — результаты последовательных применений tail.
- returns
итератор по всем хвостам этой итерируемой коллекции
- Definition Classes
- IterableOps
List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)
def take(n: Int): View[B]
Выбирает первые n элементов.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен.
- n
количество элементов, которые нужно взять из этой итерируемой коллекции.
- returns
итерируемая коллекция, состоящая только из первых
nэлементов этой итерируемой коллекции, или же вся итерируемая коллекция, если она содержит меньше чемnэлементов. Еслиnотрицателен, возвращает пустую итерируемую коллекцию.
- Определяющие классы
- IterableOps → IterableOnceOps
- Примечание
Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван, и использовать только возвращенный итератор. Использование старого итератора не определено, может измениться и может привести к изменениям в новом итераторе.
def takeRight(n: Int): View[B]
Выбирает последние n элементов.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен.
- n
количество элементов, которые нужно взять из этой итерируемой коллекции.
- returns
итерируемая коллекция, состоящая только из последних
nэлементов этой итерируемой коллекции, или же вся итерируемая коллекция, если она содержит меньше чемnэлементов. Еслиnотрицателен, возвращает пустую итерируемую коллекцию.
- Определяющие классы
- IterableOps
def takeWhile(p: (B) => Boolean): View[B]
Берёт наибольший префикс элементов, удовлетворяющих предикату.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен.
- p
Предикат, используемый для проверки элементов.
- returns
наибольший префикс этой итерируемой коллекции, все элементы которой удовлетворяют предикату
p.
- Определяющие классы
- IterableOps → IterableOnceOps
def tapEach[U](f: (B) => U): View[B]
Применяет функцию с побочным эффектом к каждому элементу в этой коллекции. Строгие коллекции будут применять f к своим элементам немедленно, в то время как ленивые коллекции, такие как Views и LazyLists, будут применять f к каждому элементу только тогда, когда этот элемент будет вычислен, и каждый раз, когда этот элемент будет вычислен.
- U
тип возвращаемого значения f
- f
функция, которую нужно применить к каждому элементу в этой итерируемой коллекции
- returns
Та же логическая коллекция, что и эта
- Определяющие классы
- IterableOps → IterableOnceOps
def to[C1](factory: Factory[B, C1]): C1
Учитывая фабрику коллекций factory, преобразуйте эту коллекцию в соответствующее представление для текущего типа элемента A. Примеры использования:
xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]
- Определяющие классы
- IterableOnceOps
def toArray[B >: B](implicit arg0: ClassTag[B]): Array[B]
Преобразовать коллекцию в массив.
- Определяющие классы
- IterableOnceOps
final def toBuffer[B >: B]: Buffer[B]
- Определяющие классы
- IterableOnceOps
- Аннотации
- @inline()
def toIndexedSeq: immutable.IndexedSeq[B]
- Определяющие классы
- IterableOnceOps
final def toIterable: Collect.this.type
- returns
Эта коллекция как
Iterable[A]. Новая коллекция не будет построена, еслиthisуже являетсяIterable[A].
- Определяющие классы
- Iterable → IterableOps
def toList: immutable.List[B]
- Определяющие классы
- IterableOnceOps
def toMap[K, V](implicit ev: <:<[B, (K, V)]): immutable.Map[K, V]
- Definition Classes
- IterableOnceOps
def toSeq: immutable.Seq[B]
- returns
Это коллекция в виде
Seq[A]. Это эквивалентноto(Seq), но может быть быстрее.
- Definition Classes
- IterableOnceOps
def toSet[B >: B]: immutable.Set[B]
- Definition Classes
- IterableOnceOps
def toString(): String
Преобразует это представление в строку.
- returns
строковое представление этой коллекции. По умолчанию эта строка состоит из
classNameэтого представления, за которым следуют все элементы, разделенные запятыми и заключенные в скобки.
def toVector: immutable.Vector[B]
- Definition Classes
- IterableOnceOps
def transpose[B](implicit asIterable: (B) => Iterable[B]): View[View[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.- returns
двухмерная итерируемая коллекция итерируемых коллекций, в которой n-я строка соответствует n-му столбцу этой итерируемой коллекции.
- Definition Classes
- IterableOps
- Exceptions thrown
IllegalArgumentException, если все коллекции в этой итерируемой коллекции не имеют одинаковый размер.
def unzip[A1, A2](implicit asPair: (B) => (A1, A2)): (View[A1], View[A2])
Преобразует эту итерируемую коллекцию пар в две коллекции первой и второй части каждой пары.
val xs = Iterable(
(1, "one"),
(2, "two"),
(3, "three")).unzip
// xs == (Iterable(1, 2, 3),
// Iterable(one, two, three))
- A1
тип первой части пар элементов
- A2
тип второй части пар элементов
- asPair
явное преобразование, которое утверждает, что тип элементов этой итерируемой коллекции является парой.
- returns
пара итерируемых коллекций, содержащая первую и вторую часть каждой пары элементов этой итерируемой коллекции.
- Definition Classes
- IterableOps
def unzip3[A1, A2, A3](implicit asTriple: (B) => (A1, A2, A3)): (View[A1], View[A2], View[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
явное преобразование, которое утверждает, что тип элементов этой итерируемой коллекции является тройкой.
- returns
тройка итерируемых коллекций, содержащая первый, второй и третий член каждой тройки элементов этой итерируемой коллекции.
- Definition Classes
- IterableOps
def view: View[B]
Представление над элементами этой коллекции.
- Definition Classes
- View → IterableOps
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Unit
def withFilter(p: (B) => Boolean): WithFilter[B, [_]View[_]]
Создаёт нестрогий фильтр для этой итерируемой коллекции.
Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новую коллекцию, а второй только ограничивает область последующих map, flatMap, foreach, и withFilter операций.
Примечание: может возвращать разные результаты для разных запусков, если только базовый тип коллекции не упорядочен.
- p
предикат, используемый для проверки элементов.
- returns
объект класса
WithFilter, который поддерживаетmap,flatMap,foreach, иwithFilterоперации. Все эти операции применяются к тем элементам этой итерируемой коллекции, которые удовлетворяют предикатуp.
- Definition Classes
- IterableOps
def zip[B](that: IterableOnce[B]): View[(B, B)]
Возвращает итерируемую коллекцию, образованную из этой итерируемой коллекции и другой итерируемой коллекции путём объединения соответствующих элементов в пары. Если одна из двух коллекций длиннее другой, её оставшиеся элементы игнорируются.
- B
тип второй половины возвращаемых пар
- that
Итерируемый объект, предоставляющий вторую половину каждой пары результата
- returns
новая итерируемая коллекция, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и
that. Длина возвращаемой коллекции равна минимуму длин этой итерируемой коллекции иthat.
- Definition Classes
- IterableOps
def zipAll[A1 >: B, B](that: Iterable[B], thisElem: A1, thatElem: B): View[(A1, B)]
Возвращает итерируемую коллекцию, образованную из этой итерируемой коллекции и другой итерируемой коллекции путём объединения соответствующих элементов в пары. Если одна из двух коллекций короче другой, используются элементы-заполнители для расширения более короткой коллекции до длины более длинной.
- that
итерируемый объект, предоставляющий вторую половину каждой пары результата
- thisElem
элемент, который будет использоваться для заполнения результата, если эта итерируемая коллекция короче, чем
that.- thatElem
элемент, который будет использоваться для заполнения результата, если
thatкороче, чем эта итерируемая коллекция.- returns
новая коллекция типа
That, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции иthat. Длина возвращаемой коллекции равна максимуму длин этой итерируемой коллекции иthat. Если эта итерируемая коллекция короче, чемthat, значенияthisElemиспользуются для заполнения результата. Еслиthatкороче, чем эта итерируемая коллекция, значенияthatElemиспользуются для заполнения результата.
- Definition Classes
- IterableOps
def zipWithIndex: View[(B, Int)]
Объединяет эту итерируемую коллекцию с её индексами.
- returns
Новая итерируемая коллекция, содержащая пары, состоящие из всех элементов этой итерируемой коллекции, объединённых с их индексом. Индексы начинаются с
0.
- Definition Classes
- IterableOps → IterableOnceOps
- Note
Повторное использование: после вызова этого метода следует отказаться от итератора, к которому он был вызван, и использовать только возвращённый итератор. Использование старого итератора не определено, может быть изменено и может привести к изменениям нового итератора.
List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/collection/View$$Collect.html
Представление, которое собирает элементы из базового набора.