Класс scala.collection.ArrayOps
Компаньон объект ArrayOps
final класс ArrayOps[A] extends AnyVal
Конструкторы экземпляров
новый ArrayOps(xs: Массив[A])
Члены значения
окончательный def !=(arg0: Любой): Булево
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае false.
- Определяющие классы
- Любой
окончательный def ##(): Целое число
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел он возвращает значение хэша, которое согласуется с равенством значений: если два экземпляра типа значения сравниваются как true, то ## для каждого из них вернёт одинаковое значение хэша. Для null возвращает хешкод, где null.hashCode бросает NullPointerException.
- возвращает
значение хэша, согласованное с ==
- Определяющие классы
- Любой
def +(other: Строка): Строка
- Неявный
- Этот член добавлен неявным преобразованием из ArrayOps[A] вany2stringadd[ArrayOps[A]] посредством метода any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
окончательный def ++[B >: A](xs: Массив[_ <: B])(неявный arg0: ClassTag[B]): Массив[B]
- Аннотации
- @inline()
окончательный def ++[B >: A](xs: IterableOnce[B])(неявный arg0: ClassTag[B]): Массив[B]
- Аннотации
- @inline()
окончательный def ++:[B >: A](prefix: Массив[_ <: B])(неявный arg0: ClassTag[B]): Массив[B]
- Аннотации
- @inline()
окончательный def ++:[B >: A](prefix: IterableOnce[B])(неявный arg0: ClassTag[B]): Массив[B]
- Аннотации
- @inline()
окончательный def +:[B >: A](x: B)(неявный arg0: ClassTag[B]): Массив[B]
- Аннотации
- @inline()
def ->[B](y: B): (ArrayOps[A], B)
- Неявный
- Этот член добавлен неявным преобразованием из ArrayOps[A] вArrowAssoc[ArrayOps[A]] посредством метода ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final def :+[B >: A](x: B)(implicit arg0: ClassTag[B]): Array[B]
- Annotations
- @inline()
final def :++[B >: A](suffix: Array[_ <: B])(implicit arg0: ClassTag[B]): Array[B]
- Annotations
- @inline()
final def :++[B >: A](suffix: IterableOnce[B])(implicit arg0: ClassTag[B]): Array[B]
- Annotations
- @inline()
final def ==(arg0: Any): Boolean
Тестирует два объекта на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Definition Classes
- Any
def appended[B >: A](x: B)(implicit arg0: ClassTag[B]): Array[B]
def appendedAll[B >: A](suffix: Array[_ <: B])(implicit arg0: ClassTag[B]): Array[B]
def appendedAll[B >: A](suffix: IterableOnce[B])(implicit arg0: ClassTag[B]): Array[B]
final def asInstanceOf[T0]: T0
Приведение объекта-получателя к типу T0.
Обратите внимание, что успех приведения во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] вызовет ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, из-за стирания типа аргумента во время компиляции невозможно проверить, содержат ли элементы списка требуемый тип.
- возвращает
объект-получатель.
- Definition Classes
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стирания типаT0.
def collect[B](pf: PartialFunction[A, B])(implicit arg0: ClassTag[B]): Array[B]
Создаёт новый массив, применяя частичную функцию ко всем элементам этого массива, для которых функция определена.
- B
тип элементов возвращаемого массива.
- pf
частичная функция, которая фильтрует и отображает массив.
- возвращает
новый массив, полученный путём применения заданной частичной функции
pfк каждому элементу, для которого она определена, и сбора результатов. Порядок элементов сохраняется.
def collectFirst[B](f: PartialFunction[A, B]): Option[B]
def combinations(n: Int): Iterator[Array[A]]
Перебирает комбинации. _Комбинация_ длины n — это подпоследовательность исходного массива, элементы которой взяты по порядку. Таким образом, Array("x", "y") и Array("y", "y") — это комбинации длины 2 из Array("x", "y", "y"), но Array("y", "x") — нет. Если существует несколько способов сгенерировать одну и ту же подпоследовательность, будет возвращен только один из них.
Например, Array("x", "y", "y", "y") имеет три различных способа генерации Array("x", "y") в зависимости от того, выбран ли первый, второй или третий "y". Однако, поскольку все они идентичны, будет выбран только один. Какой из трех будет взят — это деталь реализации, которая не определена.
- returns
Итератор, который проходит по возможным n-элементным комбинациям этого массива.
Array("a", "b", "b", "b", "c").combinations(2) == Iterator(Array(a, b), Array(a, c), Array(b, b), Array(b, c))
final def concat[B >: A](suffix: Array[_ <: B])(implicit arg0: ClassTag[B]): Array[B]
- Annotations
- @inline()
final def concat[B >: A](suffix: IterableOnce[B])(implicit arg0: ClassTag[B]): Array[B]
- Annotations
- @inline()
def contains(elem: A): Boolean
Проверяет, содержит ли этот массив заданное значение в качестве элемента.
- elem
элемент для проверки.
- returns
trueесли этот массив имеет элемент, равный (как определено==)elem,falseв противном случае.
def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int
Копирует элементы этого массива в другой массив. Заполняет данный массив xs начиная с индекса start не более чем len значениями. Копирование прекратится, как только будут скопированы все элементы этого массива, или будет достигнут конец массива, или будет скопировано len элементов.
- B
тип элементов массива.
- xs
массив для заполнения.
- start
начальный индекс в целевом массиве.
- len
максимальное количество элементов для копирования.
def copyToArray[B >: A](xs: Array[B], start: Int): Int
Копирует элементы этого массива в другой массив. Заполняет данный массив xs начиная с индекса start. Копирование прекратится, как только будут скопированы все элементы этого массива, или будет достигнут конец массива.
- B
тип элементов массива.
- xs
массив для заполнения.
- start
начальный индекс в целевом массиве.
def copyToArray[B >: A](xs: Array[B]): Int
Копирует элементы этого массива в другой массив. Заполняет данный массив xs начиная с индекса 0. Копирование прекратится, как только будут скопированы все элементы этого массива, или будет достигнут конец массива.
- B
тип элементов массива.
- xs
массив для заполнения.
def count(p: (A) => Boolean): Int
def diff[B >: A](that: Seq[B]): Array[A]
Вычисляет разность мультимножеств между этим массивом и другой последовательностью.
- that
последовательность элементов для удаления
- returns
новый массив, который содержит все элементы этого массива, за исключением некоторых вхождений элементов, которые также встречаются в
that. Если значение элементаxвстречается n раз вthat, то первые n вхожденийxне будут входить в результат, но любые последующие вхождения будут.
def distinct: Array[A]
Выбирает все элементы этого массива, игнорируя дубликаты.
- returns
новый массив, состоящий из всех элементов этого массива без дубликатов.
def distinctBy[B](f: (A) => B): Array[A]
Выбирает все элементы этого массива, игнорируя дубликаты, как определено ==, после применения преобразовательной функции f.
- B
тип элементов после преобразования функцией
f- f
Функция преобразования, результат которой используется для определения уникальности каждого элемента
- returns
новый массив, состоящий из всех элементов этого массива без дубликатов.
def drop(n: Int): Array[A]
def dropRight(n: Int): Array[A]
def dropWhile(p: (A) => Boolean): Array[A]
Удаляет самую длинную префиксную часть элементов, удовлетворяющих предикату.
- p
Предикат для проверки элементов.
- returns
самый длинный суффикс этого массива, первый элемент которого не удовлетворяет предикату
p.
def endsWith[B >: A](that: Iterable[B]): Boolean
Проверяет, заканчивается ли этот массив заданной последовательностью.
- that
последовательность для проверки
- returns
trueесли этот массив имеетthatв качестве суффикса,falseв противном случае.
def endsWith[B >: A](that: Array[B]): Boolean
Проверяет, заканчивается ли этот массив заданным массивом.
- that
массив для проверки
- returns
trueесли этот массив имеетthatв качестве суффикса,falseв противном случае.
def ensuring(cond: (ArrayOps[A]) => Boolean, msg: => Any): ArrayOps[A]
- Неявный
- Этот член добавлен неявным преобразованием из ArrayOps[A] вEnsuring[ArrayOps[A]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (ArrayOps[A]) => Boolean): ArrayOps[A]
- Неявный
- Этот член добавлен неявным преобразованием из ArrayOps[A] вEnsuring[ArrayOps[A]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): ArrayOps[A]
- Неявный
- Этот член добавлен неявным преобразованием из ArrayOps[A] вEnsuring[ArrayOps[A]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): ArrayOps[A]
- Неявный
- Этот член добавлен неявным преобразованием из ArrayOps[A] вEnsuring[ArrayOps[A]] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def exists(f: (A) => Boolean): Boolean
Проверяет, выполняется ли предикат хотя бы для одного элемента этого массива.
- returns
trueесли заданный предикатpудовлетворяется хотя бы одним элементом этого массива, в противном случаеfalse
def filter(p: (A) => Boolean): Array[A]
Выбирает все элементы этого массива, которые удовлетворяют предикату.
- p
предикат, используемый для проверки элементов.
- returns
новый массив, состоящий из всех элементов этого массива, которые удовлетворяют заданному предикату
p.
def filterNot(p: (A) => Boolean): Array[A]
Выбирает все элементы этого массива, которые не удовлетворяют предикату.
- returns
новый массив, состоящий из всех элементов этого массива, которые не удовлетворяют заданному предикату
pred.
def find(f: (A) => Boolean): Option[A]
Находит первый элемент массива, удовлетворяющий предикату, если таковой существует.
- returns
значение Option, содержащее первый элемент в массиве, удовлетворяющий
p, илиNone, если такового нет.
def flatMap[BS, B](f: (A) => BS)(implicit asIterable: (BS) => Iterable[B], m: ClassTag[B]): Array[B]
def flatMap[B](f: (A) => IterableOnce[B])(implicit arg0: ClassTag[B]): Array[B]
Создает новый массив, применяя функцию ко всем элементам этого массива и используя элементы полученных коллекций.
- B
тип элементов возвращаемого массива.
- f
функция, применяемая к каждому элементу.
- returns
новый массив, полученный путем применения заданной функции, возвращающей коллекцию
fк каждому элементу этого массива и конкатенации результатов.
def flatten[B](implicit asIterable: (A) => IterableOnce[B], m: ClassTag[B]): Array[B]
Разворачивает двумерный массив, конкатенируя все его строки в один массив.
- B
Тип элементов строки.
- asIterable
Функция, преобразующая элементы этого массива в строки - итераторы типа
B.- returns
Массив, полученный путем конкатенации строк этого массива.
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
Складывает элементы этого массива, используя указанный ассоциативный бинарный оператор.
- A1
параметр типа для бинарного оператора, надтипом
A.- z
нейтральный элемент для операции fold; может быть добавлен к результату произвольное количество раз, и не должен изменять результат (например,
Nilдля конкатенации списков, 0 для сложения или 1 для умножения).- op
бинарный оператор, который должен быть ассоциативным.
- returns
результат применения оператора fold
opмежду всеми элементами илиzесли этот массив пуст.
def foldLeft[B](z: B)(op: (B, A) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этого массива слева направо.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого массива слева направо с начальным значениемzслева:op(...op(z, x_1), x_2, ..., x_n)
где
x1, ..., xn— элементы этого массива. Возвращаетzесли этот массив пуст.
def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этого массива и начальному значению, справа налево.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
результат вставки
opмежду последовательными элементами этого массива, справа налево, с начальным значениемzсправа:op(x_1, op(x_2, ... op(x_n, z)...))
где
x1, ..., xn- элементы этого массива. Возвращаетzесли этот массив пуст.
def forall(f: (A) => Boolean): Boolean
Проверяет, выполняется ли предикат для всех элементов этого массива.
- returns
trueесли этот массив пуст или заданный предикатpвыполняется для всех элементов этого массива, иначеfalse.
def foreach[U](f: (A) => U): Unit
Применить f к каждому элементу для его побочных эффектов. Примечание: параметр [U] необходим для помощи выводу типа scalac.
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной строкой format. Форматные строки такие же, как для String.format (@see java.lang.String.format).
- Implicit
- Этот член добавляется неявным преобразованием из ArrayOps[A] в StringFormat[ArrayOps[A]] выполняемым методом StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
def getClass(): Class[_ <: AnyVal]
Возвращает представление класса объекта во время выполнения.
- returns
объект класса, соответствующий типу получателя во время выполнения.
def groupBy[K](f: (A) => K): immutable.Map[K, Array[A]]
Разделяет этот массив на карту массивов в соответствии с некоторой функцией дискриминатора.
- K
тип ключей, возвращаемых функцией дискриминатора.
- f
функция дискриминатора.
- returns
-
Карта из ключей в массивы, такая что выполняется следующее инвариантное условие:
(xs groupBy f)(k) = xs filter (x => f(x) == k)
То есть, каждый ключ
kпривязан к массиву тех элементовx, для которыхf(x)равноk.
def groupMap[K, B](key: (A) => K)(f: (A) => B)(implicit arg0: ClassTag[B]): immutable.Map[K, Array[B]]
Разделяет этот массив на карту массивов в соответствии с функцией дискриминатора key. Каждый элемент в группе преобразуется в значение типа B с помощью функции value.
Это эквивалентно groupBy(key).mapValues(_.map(f)), но более эффективно.
case class User(name: String, age: Int) def namesByAge(users: Array[User]): Map[Int, Array[String]] = users.groupMap(_.age)(_.name)
- K
тип ключей, возвращаемых функцией дискриминатора
- B
тип значений, возвращаемых функцией преобразования
- key
функция дискриминатора
- f
функция преобразования элементов
def grouped(size: Int): Iterator[Array[A]]
Разделяет элементы на массивы фиксированного размера.
- size
количество элементов в группе
- returns
Итератор, создающий массивы размером
size, за исключением последнего, который будет меньше размераsize, если элементы не делятся равномерно.
- See also
scala.collection.Iterator, метод
grouped
def head: A
Выбирает первый элемент этого массива.
- returns
первый элемент этого массива.
- Exceptions thrown
NoSuchElementExceptionесли массив пуст.
def headOption: Option[A]
Возвращает первый элемент, если массив не пустой.
- returns
первый элемент массива, если он не пустой,
Noneесли массив пустой.
def indexOf(elem: A, from: Int = 0): Int
Находит индекс первого вхождения значения в массиве после или на указанном начальном индексе.
- elem
значение искомого элемента.
- from
начальный индекс
- returns
индекс
>= fromпервого элемента массива, который равен (как определяется==)elem, или-1, если такого элемента нет.
def indexWhere(f: (A) => Boolean, from: Int = 0): Int
Находит индекс первого элемента, удовлетворяющего некоторому предикату, после или на указанном начальном индексе.
- from
начальный индекс
- returns
индекс
>= fromпервого элемента массива, удовлетворяющего предикатуp, или-1, если такого элемента нет.
def indices: immutable.Range
Возвращает диапазон всех индексов в последовательности.
- returns
значение
Rangeот0до значения на единицу меньше длины массива.
def init: Array[A]
def inits: Iterator[Array[A]]
Итерируется по начальным сегментам массива. Первое значение — это сам массив, а последнее — пустой массив, промежуточные значения — результат последовательного применения init.
- returns
итератор по всем начальным сегментам массива
def intersect[B >: A](that: Seq[B]): Array[A]
Вычисляет пересечение множеств элементов этого массива и другой последовательности.
- that
последовательность элементов для пересечения.
- returns
новый массив, содержащий все элементы этого массива, которые также присутствуют в
that. Если значение элементаxвстречается n раз вthat, то первые n вхожденийxбудут сохранены в результате, но любые последующие вхождения будут опущены.
def isEmpty: Boolean
Проверяет, пуст ли массив.
- returns
trueесли массив не содержит элементов,falseв противном случае.
- Annotations
- @inline()
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 iterator: Iterator[A]
def knownSize: Int
def last: A
Возвращает последний элемент.
- returns
Последний элемент этого массива.
- Exceptions thrown
NoSuchElementExceptionЕсли массив пуст.
def lastIndexOf(elem: A, end: Int = xs.length - 1): Int
Находит индекс последнего вхождения значения в этом массиве до или на заданном конечном индексе.
- elem
значение искомого элемента.
- end
конечный индекс.
- returns
индекс
<= endпоследнего элемента этого массива, который равен (как определяется==)elem, или-1, если такого элемента нет.
def lastIndexWhere(p: (A) => Boolean, end: Int = xs.length - 1): Int
Находит индекс последнего элемента, удовлетворяющего некоторому предикату до или в указанном конечном индексе.
- p
предикат, используемый для проверки элементов.
- возвращает
индекс
<= endпоследнего элемента этого массива, удовлетворяющего предикатуp, или-1, если такового нет.
def lastOption: Option[A]
Выбирает последний элемент (необязательно).
- возвращает
последний элемент этого массива, если он непустой,
Noneесли он пустой.
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Array[A]]
Аналогично 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
iterable, предоставляющий второй элемент каждой потенциальной пары
- возвращает
декоратор
LazyZip2, который позволяет выполнять строгие операции над лениво вычисляемыми парами или цепочкой вызововlazyZip. Также поддерживается неявное преобразование вIterable[(A, B)].
def lengthCompare(len: Int): Int
Сравнивает длину этого массива со значением теста.
- len
значение теста, которое сравнивается с длиной.
- возвращает
-
Значение
x, гдеx < 0 if this.length < len x == 0 if this.length == len x > 0 if this.length > len
def lengthIs: Int
Метод, отражающий SeqOps.lengthIs для согласованности, за исключением того, что он возвращает Int, потому что length известно, и сравнение выполняется за постоянное время.
Эти операции эквивалентны lengthCompare(Int) и позволяют использовать более читаемые выражения:
this.lengthIs < len // this.lengthCompare(len) < 0 this.lengthIs <= len // this.lengthCompare(len) <= 0 this.lengthIs == len // this.lengthCompare(len) == 0 this.lengthIs != len // this.lengthCompare(len) != 0 this.lengthIs >= len // this.lengthCompare(len) >= 0 this.lengthIs > len // this.lengthCompare(len) > 0
def map[B](f: (A) => B)(implicit ct: ClassTag[B]): Array[B]
Создает новый массив, применяя функцию ко всем элементам этого массива.
- B
тип элементов возвращаемого массива.
- f
функция, применяемая к каждому элементу.
- возвращает
новый массив, полученный путём применения заданной функции
fк каждому элементу этого массива и сбора результатов.
def mapInPlace(f: (A) => A): Array[A]
def nonEmpty: Boolean
Проверяет, не является ли массив пустым.
- возвращает
true, если массив содержит по крайней мере один элемент,falseв противном случае.
- Annotations
- @inline()
def padTo[B >: A](len: Int, elem: B)(implicit arg0: ClassTag[B]): Array[B]
Копия этого массива с добавленным элементом до тех пор, пока не будет достигнута заданная целевая длина.
- B
тип элементов возвращаемого массива.
- len
целевая длина
- elem
значение дополнения
- возвращает
новый массив, состоящий из всех элементов этого массива, за которым следуют минимальное количество вхождений
elemтаким образом, что результирующий набор имеет длину не менееlen.
def partition(p: (A) => Boolean): (Array[A], Array[A])
def partitionMap[A1, A2](f: (A) => Either[A1, A2])(implicit arg0: ClassTag[A1], arg1: ClassTag[A2]): (Array[A1], Array[A2])
Применяет функцию f к каждому элементу массива и возвращает пару массивов: первый содержит значения, возвращённые f, которые были обернуты в scala.util.Left, а второй — значения, обернутые в scala.util.Right.
Пример:
val xs = Array(1, "one", 2, "two", 3, "three") partitionMap {
case i: Int => Left(i)
case s: String => Right(s)
}
// xs == (Array(1, 2, 3),
// Array(one, two, three))
- A1
тип элементов первого результирующего набора
- A2
тип элементов второго результирующего набора
- f
функция 'разделения', отображающая элементы этого массива в scala.util.Either
- returns
пара массивов: первый содержит значения, возвращённые
f, которые были обернуты в scala.util.Left, а второй — значения, обернутые в scala.util.Right.
def patch[B >: A](from: Int, other: IterableOnce[B], replaced: Int)(implicit arg0: ClassTag[B]): Array[B]
Возвращает копию этого массива со значениями, заменёнными на новые. Замена по отрицательным индексам эквивалентна замене, начинающейся с 0. Замена по индексам, равным или большим длины исходного массива, добавляет вставку в конец. Если заменённых значений больше, чем существует в исходном массиве, лишние игнорируются.
- from
Начальный индекс для замены
- other
Значения для замены
- replaced
Количество значений в исходном массиве, заменяемых вставкой.
def permutations: Iterator[Array[A]]
Итерируется по различным перестановкам.
- returns
Итератор, проходящий по различным перестановкам этого массива.
Array("a", "b", "b").permutations == Iterator(Array(a, b, b), Array(b, a, b), Array(b, b, a))
def prepended[B >: A](x: B)(implicit arg0: ClassTag[B]): Array[B]
def prependedAll[B >: A](prefix: Array[_ <: B])(implicit arg0: ClassTag[B]): Array[B]
def prependedAll[B >: A](prefix: IterableOnce[B])(implicit arg0: ClassTag[B]): Array[B]
def reverse: Array[A]
Возвращает новый массив с элементами в обратном порядке.
- Annotations
- @inline()
def reverseIterator: Iterator[A]
Итератор, возвращающий элементы в обратном порядке.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но реализовано более эффективно.
- returns
итератор, возвращающий элементы этого массива в обратном порядке
def scan[B >: A](z: B)(op: (B, B) => B)(implicit arg0: ClassTag[B]): Array[B]
Вычисляет префиксное сканирование элементов массива.
Примечание: нейтральный элемент z может применяться более одного раза.
- B
тип элементов результирующего массива
- z
нейтральный элемент для оператора
op- op
ассоциативный оператор для сканирования
- returns
новый массив, содержащий префиксное сканирование элементов в этом массиве
def scanLeft[B](z: B)(op: (B, A) => B)(implicit arg0: ClassTag[B]): Array[B]
Создаёт массив, содержащий кумулятивные результаты применения бинарного оператора слева направо.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
массив с промежуточными значениями. Пример:
Array(1, 2, 3, 4).scanLeft(0)(_ + _) == Array(0, 1, 3, 6, 10)
def scanRight[B](z: B)(op: (A, B) => B)(implicit arg0: ClassTag[B]): Array[B]
Создаёт массив, содержащий кумулятивные результаты применения бинарного оператора справа налево.
- B
тип результата бинарного оператора.
- z
начальное значение.
- op
бинарный оператор.
- returns
-
массив с промежуточными значениями. Пример:
Array(4, 3, 2, 1).scanRight(0)(_ + _) == Array(10, 6, 3, 1, 0)
def size: Int
def sizeCompare(otherSize: Int): Int
Сравнивает размер этого массива со значением.
- otherSize
значение для сравнения с размером.
- returns
-
Значение
x, гдеx < 0 if this.size < otherSize x == 0 if this.size == otherSize x > 0 if this.size > otherSize
def sizeIs: Int
Метод, дублирующий SeqOps.sizeIs для согласованности, но возвращает Int, так как size известно и сравнение выполняется за постоянное время.
Эти операции эквивалентны 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
def slice(from: Int, until: Int): Array[A]
Выбирает интервал элементов. Возвращаемый массив состоит из всех элементов x, удовлетворяющих инварианту:
from <= indexOf(x) < until
- from
наименьший индекс для включения из этого массива.
- until
наименьший индекс для ИСКЛЮЧЕНИЯ из этого массива.
- returns
массив, содержащий элементы, большие или равные индексу
from, до (но не включая) индексаuntilэтого массива.
def sliding(size: Int, step: Int = 1): Iterator[Array[A]]
Группирует элементы в блоки фиксированного размера, перемещая "скользящее окно" по ним (в отличие от разбиения, как в grouped).
- size
количество элементов в группе
- step
расстояние между первыми элементами последовательных групп
- returns
Итератор, производящий массивы размера
size, за исключением последнего элемента (который может быть единственным), который будет усечён, если оставшихся элементов для группировки меньше, чемsize.
- See also
scala.collection.Iterator, метод
sliding
def sortBy[B](f: (A) => B)(implicit ord: math.Ordering[B]): Array[A]
Сортирует этот массив согласно порядку, полученному из преобразования заданного неявно порядка с помощью функции преобразования.
- B
целевой тип преобразования
f, и тип, где определён порядокord.- f
функция преобразования, отображающая элементы в другую область
B.- ord
порядок, предполагаемый в области
B.- returns
массив, состоящий из элементов этого массива, отсортированных согласно порядку, где
x < y, еслиord.lt(f(x), f(y)).
- See also
def sortWith(lt: (A, A) => Boolean): Array[A]
Сортирует этот массив согласно функции сравнения.
Сортировка стабильна. То есть, элементы, равные (как определено lt) появляются в отсортированной последовательности в том же порядке, что и в оригинальной.
- lt
функция сравнения, проверяющая, предшествует ли первый аргумент второму аргументу в желаемом порядке.
- returns
массив, состоящий из элементов этого массива, отсортированных согласно функции сравнения
lt.
def sorted[B >: A](implicit ord: math.Ordering[B]): Array[A]
Сортирует этот массив в соответствии с Ordering.
Сортировка является стабильной. То есть, элементы, которые равны (как определено lt) появляются в том же порядке в отсортированной последовательности, что и в исходном.
- ord
порядок, используемый для сравнения элементов.
- returns
массив, состоящий из элементов этого массива, отсортированных в соответствии с порядком
ord.
- См. также
def span(p: (A) => Boolean): (Array[A], Array[A])
Разделяет этот массив на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но эффективнее), чем (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не приводит к побочным эффектам.
- p
предикат проверки
- returns
пара, состоящая из самого длинного префикса этого массива, элементы которого все удовлетворяют
p, и остальной части этого массива.
def splitAt(n: Int): (Array[A], Array[A])
Разделяет этот массив на две части в заданной позиции. Примечание: c splitAt n эквивалентно (c take n, c drop n).
- n
позиция разделения.
- returns
пара массивов, состоящая из первых
nэлементов этого массива и других элементов.
def startsWith[B >: A](that: IterableOnce[B], offset: Int = 0): Boolean
Проверяет, содержит ли этот массив заданную последовательность в заданном индексе.
- that
последовательность для проверки
- offset
индекс, где ищется последовательность.
- returns
true, если последовательностьthatсодержится в этом массиве по индексуoffset, в противном случаеfalse.
def startsWith[B >: A](that: Array[B], offset: Int): Boolean
Проверяет, содержит ли этот массив заданный массив в заданном индексе.
- that
массив для проверки
- offset
индекс, где ищется массив.
- returns
trueесли массивthatсодержится в этом массиве по индексуoffset, в противном случаеfalse.
def startsWith[B >: A](that: Array[B]): Boolean
Проверяет, начинается ли этот массив с заданного массива.
- Аннотации
- @inline()
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S with EfficientSplit
def tail: Array[A]
def tails: Iterator[Array[A]]
Перебирает хвосты этого массива. Первое значение будет этим массивом, а последнее — пустым массивом, а промежуточные значения будут результатом последовательных применений tail.
- returns
итератор по всем хвостам этого массива
def take(n: Int): Array[A]
def takeRight(n: Int): Array[A]
def takeWhile(p: (A) => Boolean): Array[A]
Возвращает самый длинный префикс элементов, удовлетворяющих предикату.
- p
Предикат, используемый для проверки элементов.
- returns
самый длинный префикс этого массива, элементы которого удовлетворяют предикату
p.
def toArray[B >: A](implicit arg0: ClassTag[B]): Array[B]
def toIndexedSeq: immutable.IndexedSeq[A]
final def toSeq: immutable.Seq[A]
- Annotations
- @inline()
def toString(): String
Возвращает строковое представление объекта.
Представление по умолчанию зависит от платформы.
- returns
строковое представление объекта.
- Определяющие классы
- Any
def transpose[B](implicit asArray: (A) => Array[B]): Array[Array[B]]
Транспонирует двумерный массив.
- B
Тип элементов строки.
- asArray
Функция, которая преобразует элементы этого массива в строки - массивы типа
B.- returns
Массив, полученный путем замены элементов этого массива на строки, которые они представляют.
def unzip[A1, A2](implicit asPair: (A) => (A1, A2), ct1: ClassTag[A1], ct2: ClassTag[A2]): (Array[A1], Array[A2])
Преобразует массив пар в массив первых элементов и массив вторых элементов.
- A1
тип первой половины пар элементов
- A2
тип второй половины пар элементов
- asPair
неявное преобразование, которое утверждает, что тип элемента этого массива является парой.
- ct1
тег класса для параметра типа
A1, который необходим для создания экземпляраArray[A1]- ct2
тег класса для параметра типа
A2, который необходим для создания экземпляраArray[A2]- returns
пара массивов, содержащих соответственно первую и вторую половину каждой пары элементов этого массива.
def unzip3[A1, A2, A3](implicit asTriple: (A) => (A1, A2, A3), ct1: ClassTag[A1], ct2: ClassTag[A2], ct3: ClassTag[A3]): (Array[A1], Array[A2], Array[A3])
Преобразует массив троек в три массива, один из которых содержит элементы из каждой позиции тройки.
- A1
тип первого из трех элементов в тройке
- A2
тип второго из трех элементов в тройке
- A3
тип третьего из трех элементов в тройке
- asTriple
неявное преобразование, которое утверждает, что тип элемента этого массива является тройкой.
- ct1
тег класса для параметра типа T1, который необходим для создания экземпляра Array[T1]
- ct2
тег класса для параметра типа T2, который необходим для создания экземпляра Array[T2]
- ct3
тег класса для параметра типа T3, который необходим для создания экземпляра Array[T3]
- returns
тройка массивов, содержащих соответственно первый, второй и третий элементы из каждой тройки элементов этого массива.
def updated[B >: A](index: Int, elem: B)(implicit arg0: ClassTag[B]): Array[B]
Копия этого массива с одним замененным элементом.
- index
позиция замены
- elem
заменяющий элемент
- returns
новый массив, который является копией этого массива с элементом в позиции
indexзамененным наelem.
- Выбрасываемые исключения
IndexOutOfBoundsExceptionеслиindexне удовлетворяет0 <= index < length.
def view: IndexedSeqView[A]
- Annotations
- @inline()
def withFilter(p: (A) => Boolean): ArrayOps.WithFilter[A]
Создаёт нестрогий фильтр этого массива.
Примечание: различие между c filter p и c withFilter p заключается в том, что первый создаёт новый массив, тогда как второй только ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.
- p
предикат, используемый для проверки элементов.
- возвращает
объект класса
ArrayOps.WithFilter, который поддерживаетmap,flatMap,foreach, иwithFilterоперации. Все эти операции применяются к тем элементам этого массива, которые удовлетворяют предикатуp.
def zip[B](that: IterableOnce[B]): Array[(A, B)]
Возвращает массив, образованный из этого массива и другой итерируемой коллекции, объединив соответствующие элементы в пары. Если одна из двух коллекций длиннее другой, её оставшиеся элементы игнорируются.
- B
тип второй половины возвращаемых пар
- that
Итерируемая коллекция, предоставляющая вторую половину каждой пары результата
- возвращает
новый массив, содержащий пары, состоящие из соответствующих элементов этого массива и
that. Длина возвращаемого массива является минимальной из длин этого массива иthat.
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): Array[(A1, B)]
Возвращает массив, образованный из этого массива и другой итерируемой коллекции, объединив соответствующие элементы в пары. Если одна из двух коллекций короче другой, для расширения более короткой коллекции до длины более длинной используются плейсхолдерные элементы.
- that
итерируемая коллекция, предоставляющая вторую половину каждой пары результата
- thisElem
элемент, который будет использоваться для заполнения результата, если этот массив короче
that.- thatElem
элемент, который будет использоваться для заполнения результата, если
thatкороче этого массива.- возвращает
новый массив, содержащий пары, состоящие из соответствующих элементов этого массива и
that. Длина возвращаемого массива является максимальной из длин этого массива иthat. Если этот массив корочеthat, значенияthisElemиспользуются для заполнения результата. Еслиthatкороче этого массива, значенияthatElemиспользуются для заполнения результата.
def zipWithIndex: Array[(A, Int)]
Объединяет этот массив с его индексами.
- возвращает
новый массив, содержащий пары, состоящие из всех элементов этого массива, соединённых со своими индексами. Индексы начинаются с
0.
© 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/ArrayOps.html
Этот класс служит оболочкой для
Arrays с множеством операций, найденных в индексированных последовательностях. По мере необходимости экземпляры массивов неявно преобразуются в этот класс. В общем случае нет необходимости явно создавать экземпляр или использовать типArrayOps. Лучше работать с обычнымиArrayтипами и полагаться на неявное преобразование вArrayOpsпри вызове метода (который фактически не выделяет экземплярArrayOpsиз-за того, что это класс-значение).Ни
Array, ниArrayOpsне являются правильными типами коллекций (т.е. они не наследуютIterableили дажеIterableOnce).mutable.ArraySeqиimmutable.ArraySeqслужат этой цели.Разница между этим классом и
ArraySeqs заключается в том, что вызов методов преобразования, таких какfilterиmap, приведет к массиву, в то время какArraySeqостанетсяArraySeq.тип элементов, содержащихся в этом массиве.
2.8