Класс ArrayOps.ArrayOps
Этот класс служит оболочкой для Arrays со многими операциями, которые можно найти в индексированных последовательностях. При необходимости экземпляры массивов неявно преобразуются в этот класс. Обычно нет необходимости создавать экземпляр явно или использовать тип ArrayOps. Лучше работать с простыми типами Array и полагаться на неявное преобразование в ArrayOps, когда вызывается метод (что фактически не выделяет экземпляр ArrayOps из-за того, что это класс значений).
Ни Array ни ArrayOps не являются надлежащими типами коллекций (то есть они не расширяют Iterable или даже IterableOnce). mutable.ArraySeq и immutable.ArraySeq служат этой цели.
Разница между этим классом и ArraySeq заключается в том, что вызов методов преобразования, таких как filter и map, приведет к массиву, в то время как ArraySeq останется ArraySeq.
| Параметры типа |
|
|---|---|
| Надтипы |
Конкретные методы
Исходный код
Исходный код
Исходный код
Исходный код
Исходный код
Исходный код
Исходный код
Исходный код
Исходный код
Копия этого массива с добавленным элементом.
Исходный код
Копия этого массива со всеми элементами коллекции, добавленными в конец.
END_OF_DOCUMENT_MARKERSource
Копия этого массива со всеми элементами массива, добавленными в конец.
Source
Создаёт новый массив, применяя частичную функцию ко всем элементам этого массива, для которых функция определена.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый массив, полученный в результате применения заданной частичной функции |
Source
Находит первый элемент массива, для которого заданная частичная функция определена, и применяет частичную функцию к нему.
Source
Итерируется по комбинациям. _Комбинация_ длиной n — это подпоследовательность исходного массива, элементы которой взяты в порядке следования. Таким образом, Array("x", "y") и Array("y", "y") — обе комбинации длины 2 из Array("x", "y", "y"), но Array("y", "x") — нет. Если существует более одного способа сгенерировать одну и ту же подпоследовательность, будет возвращена только одна.
Например, Array("x", "y", "y", "y") имеет три разных способа сгенерировать Array("x", "y") в зависимости от того, какой первый, второй или третий "y" выбирается. Однако, поскольку все они идентичны, будет выбран только один. Какой из трёх будет выбран — деталь реализации, которая не определена.
| Возвращает | Итератор, который перебирает все возможные n-элементные комбинации этого массива. |
|---|---|
| Пример |
Array("a", "b", "b", "b", "c").combinations(2) == Iterator(Array(a, b), Array(a, c), Array(b, b), Array(b, c))
|
Source
Source
Source
Проверяет, содержит ли этот массив заданное значение в качестве элемента.
| Параметры значения |
|
|---|---|
| Возвращает |
|
Source
Копирует элементы этого массива в другой массив. Заполняет данный массив xs начиная с индекса 0. Копирование прекращается, когда либо все элементы этого массива будут скопированы, либо будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
Source
Копирует элементы этого массива в другой массив. Заполняет заданный массив xs начиная с индекса start. Копирование прекращается, как только будут скопированы все элементы этого массива или будет достигнут конец массива.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
Источник
Копирует элементы этого массива в другой массив. Заполняет заданный массив xs начиная с индекса start не более чем len значениями. Копирование прекращается, как только будут скопированы все элементы этого массива, будет достигнут конец массива или len элементов будут скопированы.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
Источник
Подсчитывает количество элементов в этом массиве, которые удовлетворяют предикату.
Источник
Вычисляет разность мультимножеств между этим массивом и другой последовательностью.
| Параметры значения |
|
|---|---|
| Возвращает | новый массив, содержащий все элементы этого массива, за исключением некоторых вхождений элементов, которые также присутствуют в |
Источник
Выбирает все элементы этого массива, игнорируя дубликаты.
| Возвращает | новый массив, состоящий из всех элементов этого массива без дубликатов. |
|---|
Источник
def distinctBy[B](f: A => B): Array[A]
Выбирает все элементы этого массива, игнорируя дубликаты, как определяется == после применения преобразующей функции f.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый массив, состоящий из всех элементов этого массива без дубликатов. |
Источник
Остальная часть массива без его n первых элементов.
Источник
Остальная часть массива без его n последних элементов.
Источник
Удаляет самую длинную префиксную часть элементов, удовлетворяющих предикату.
| Параметры значения |
|
|---|---|
| Возвращает | самый длинный суффикс этого массива, первый элемент которого не удовлетворяет предикату |
Источник
Проверяет, заканчивается ли этот массив заданным массивом.
| Параметры значения |
|
|---|---|
| Возвращает |
|
Источник
Проверяет, заканчивается ли этот массив заданной последовательностью.
| Параметры значения |
|
|---|---|
| Возвращает |
|
Источник
Проверяет, выполняется ли предикат хотя бы для одного элемента этого массива.
| Параметры значения |
|
|---|---|
| Возвращает |
|
Источник
Выбирает все элементы этого массива, которые удовлетворяют предикату.
| Параметры значения |
|
|---|---|
| Возвращает | новый массив, состоящий из всех элементов этого массива, которые удовлетворяют заданному предикату |
Источник
Выбирает все элементы этого массива, которые не удовлетворяют предикату.
| Параметры значения |
|
|---|---|
| Возвращает | новый массив, состоящий из всех элементов этого массива, которые не удовлетворяют заданному предикату |
Источник
Находит первый элемент массива, удовлетворяющий предикату, если таковой существует.
| Параметры значения |
|
|---|---|
| Возвращает | значение Option, содержащее первый элемент в массиве, который удовлетворяет |
Источник
Создает новый массив, применяя функцию ко всем элементам этого массива и используя элементы полученных коллекций.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый массив, полученный путем применения заданной функции, возвращающей коллекцию |
Source
Source
Расплющивает двумерный массив, конкатенируя все его строки в один массив.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | Массив, полученный путём конкатенации строк этого массива. |
Source
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1
Складывает элементы этого массива с помощью указанного ассоциативного бинарного оператора.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | результат применения оператора fold |
Source
def foldLeft[B](z: B)(op: (B, A) => B): B
Применяет бинарный оператор к начальному значению и всем элементам этого массива слева направо.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
результат вставки op(...op(z, x_1), x_2, ..., x_n) где |
Source
def foldRight[B](z: B)(op: (A, B) => B): B
Применяет бинарный оператор ко всем элементам этого массива и начальному значению, двигаясь справа налево.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
результат вставки op(x_1, op(x_2, ... op(x_n, z)...)) где |
Source
Проверяет, выполняется ли предикат для всех элементов этого массива.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
Source
Применяет f к каждому элементу для побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.
Source
Разделяет этот массив на карту массивов в соответствии с функцией-дискриминатором.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение |
Карта, сопоставляющая ключи с массивами, при этом выполняется следующее инвариантное свойство: (xs groupBy f)(k) = xs filter (x => f(x) == k) То есть, каждый ключ |
Source
Разбивает этот массив на карту массивов в соответствии с функцией-дискриминатором 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)
| Параметры типа |
|
|---|---|
| Параметры значения |
|
Source
Разделяет элементы на массивы фиксированного размера.
| Параметры значения |
|
|---|---|
| Возвращает | Итератор, генерирующий массивы размером |
| См. также | scala.collection.Iterator, метод |
Source
def head: A
Выбирает первый элемент этого массива.
| Возвращает | первый элемент этого массива. |
|---|---|
| Исключения |
|
Source
def headOption: Option[A]
Возвращает первый элемент массива, если он не пуст.
| Возвращает | первый элемент этого массива, если он не пустой; |
|---|
Source
Находит индекс первого вхождения значения в этом массиве после или на определенном начальном индексе.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
Source
Находит индекс первого элемента, удовлетворяющего некоторому предикату после или на определенном начальном индексе.
| Параметры значения |
|
|---|---|
| Возвращает | индекс |
Source
Создаёт диапазон всех индексов этой последовательности.
| Возвращает | значение |
|---|
Source
Начальная часть массива без последнего элемента.
Source
Итерируется по начальным частям (префиксам) этого массива. Первое значение будет этим массивом, а последнее — пустым массивом, промежуточные значения — результаты последовательных применений init.
| Возвращает | итератор по всем начальным частям (префиксам) этого массива |
|---|
Source
Вычисляет пересечение (мультисчётное) между этим массивом и другой последовательностью.
| Параметры |
|
|---|---|
| Возвращает | новый массив, содержащий все элементы этого массива, которые также встречаются в |
Source
Проверяет, пуст ли массив.
| Возвращает |
|
|---|
Source
Source
Размер этого массива.
| Возвращает | количество элементов в этом массиве. |
|---|
Source
def last: A
Возвращает последний элемент.
| Возвращает | Последний элемент этого массива. |
|---|---|
| Исключения |
|
Source
Находит индекс последнего вхождения некоторого значения в этом массиве до или в данном индексе конца.
| Параметры |
|
|---|---|
| Возвращает | индекс |
Source
Находит индекс последнего элемента, удовлетворяющего некоторому предикату до или в данном индексе конца.
| Параметры |
|
|---|---|
| Возвращает | индекс |
Source
def lastOption: Option[A]
Возвращает последний элемент в виде Option.
| Возвращает | последний элемент этого массива, если он непустой, |
|---|
Source
Аналогично 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)
| Параметры типа |
|
|---|---|
| Параметры |
|
| Возвращает | декоратор |
Source
Сравнивает длину этого массива со значением-аргументом.
| Параметры |
|
|---|---|
| Возвращает |
Значение x < 0 if this.length < len x == 0 if this.length == len x > 0 if this.length > len |
Source
Метод, отражающий SeqOps.lengthIs для согласованности, но возвращает целочисленное значение, так как размер массива известен и сравнение выполняется за постоянное время.
Эти операции эквивалентны 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
Source
Создаёт новый массив, применяя функцию ко всем элементам этого массива.
| Параметры типа |
|
|---|---|
| Параметры |
|
| Возвращает | новый массив, полученный путём применения заданной функции |
Source
def mapInPlace(f: A => A): Array[A]
Source
Проверяет, непустой ли массив.
| Возвращает |
|
|---|
Source
Копия этого массива со значением элемента, добавленным до достижения заданной целевой длины.
| Параметры типа |
|
|---|---|
| Параметры |
|
| Возвращает | новый массив, состоящий из всех элементов этого массива, за которыми следует минимальное количество вхождений |
Источник
Пара, содержащая, во-первых, все элементы, удовлетворяющие предикату p, и, во-вторых, все элементы, которые не удовлетворяют ему.
Источник
Применяет функцию 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))
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | пару массивов: первый содержит значения, возвращённые функцией |
Источник
Возвращает копию этого массива с заменёнными значениями. Замена по отрицательным индексам эквивалентна замене, начинающейся с 0. Замена по индексам, равным или большим длины исходного массива, добавляет вставка в конец. Если количество заменяемых значений больше, чем фактически существующих, избыток игнорируется.
| Параметры значения |
|
|---|
Источник
Итерирует по различным перестановкам.
| Возвращает | Итератор, который перебирает все различные перестановки этого массива. |
|---|---|
| Пример |
Array("a", "b", "b").permutations == Iterator(Array(a, b, b), Array(b, a, b), Array(b, b, a))
|
Источник
Копия этого массива с добавленным элементом в начало.
Источник
Копия этого массива со всеми элементами коллекции добавленными в начало.
Источник
Копия этого массива со всеми элементами массива добавленными в начало.
Источник
Возвращает новый массив с элементами в обратном порядке.
Источник
def reverseIterator: Итератор[A]
Итератор, возвращающий элементы в обратном порядке.
Примечание: xs.reverseIterator эквивалентно xs.reverse.iterator, но реализовано более эффективно.
| Возвращает | итератор, возвращающий элементы этого массива в обратном порядке |
|---|
Источник
Вычисляет префиксное сканирование элементов массива.
Примечание: Нейтральный элемент z может быть применён более одного раза.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает | новый массив, содержащий префиксное сканирование элементов в этом массиве |
Источник
Создаёт массив, содержащий кумулятивные результаты применения бинарного оператора слева направо.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
массив со промежуточными значениями. Пример: Array(1, 2, 3, 4).scanLeft(0)(_ + _) == Array(0, 1, 3, 6, 10) |
Источник
Создаёт массив, содержащий кумулятивные результаты применения бинарного оператора справа налево.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращает |
массив со промежуточными значениями. Пример: Array(4, 3, 2, 1).scanRight(0)(_ + _) == Array(10, 6, 3, 1, 0) |
Источник
Размер этого массива.
| Возвращает | количество элементов в этом массиве. |
|---|
Источник
Сравнивает размер этого массива со значением.
| Параметры значения |
|
|---|---|
| Возвращает |
Значение x < 0 if this.size < otherSize x == 0 if this.size == otherSize x > 0 if this.size > otherSize |
Источник
Метод, отражающий 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
Источник
Выбирает интервал элементов. Полученный массив состоит из всех элементов x, удовлетворяющих инварианту:
from <= indexOf(x) < until
| Параметры значения |
|
|---|---|
| Возвращает | массив, содержащий элементы, большие или равные индексу |
Source
Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от их разбиения, как это делается в grouped.)
| Параметры значения |
|
|---|---|
| Возвращаемое значение | Итератор, создающий массивы размера |
| См. также | scala.collection.Iterator, метод |
Source
Сортирует этот массив в соответствии с упорядочением, полученным в результате преобразования неявно заданного упорядочения с помощью функции преобразования.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | массив, состоящий из элементов этого массива, отсортированных в соответствии с упорядочением, где |
| См. также |
Source
Сортирует этот массив в соответствии с функцией сравнения.
Сортировка стабильна. То есть элементы, которые равны (как определено lt ), появляются в отсортированной последовательности в том же порядке, что и в исходной.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | массив, состоящий из элементов этого массива, отсортированных в соответствии с функцией сравнения |
Source
Сортирует этот массив в соответствии с упорядочением.
Сортировка стабильна. То есть элементы, которые равны (как определено lt ), появляются в отсортированной последовательности в том же порядке, что и в исходной.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | массив, состоящий из элементов этого массива, отсортированных в соответствии с упорядочением |
| См. также |
Source
Разделяет этот массив на пару префикс/суффикс в соответствии с предикатом.
Примечание: c span p эквивалентно (но более эффективно), чем (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | пара, состоящая из самого длинного префикса этого массива, элементы которого удовлетворяют |
Source
Разделяет этот массив на два по заданной позиции. Примечание: c splitAt n эквивалентно (c take n, c drop n).
| Параметры значения |
|
|---|---|
| Возвращаемое значение | пара массивов, состоящая из первых |
Source
Проверяет, начинается ли этот массив с данного массива.
Source
Проверяет, содержит ли этот массив данный массив в заданном индексе.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
Source
Проверяет, содержит ли этот массив данную последовательность в заданном индексе.
| Параметры значения |
|
|---|---|
| Возвращаемое значение |
|
Source
Source
Остальная часть массива без первого элемента.
Source
Перебирает хвосты этого массива. Первое значение будет этим массивом, а последнее — пустым массивом, а промежуточные значения будут результатами последовательных применений tail.
| Возвращаемое значение | итератор по всем хвостам этого массива |
|---|
Source
Массив, содержащий первые n элементов этого массива.
Source
Массив, содержащий последние n элементы этого массива.
Source
Берет самый длинный префикс элементов, удовлетворяющих предикату.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | самый длинный префикс этого массива, элементы которого удовлетворяют предикату |
Source
Создает копию этого массива со специфицированным типом элементов.
Источник
def toIndexedSeq: IndexedSeq[A]
Источник
Источник
Транспонирует двумерный массив.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | Массив, полученный путем замены элементов этого массива соответствующими строками. |
Источник
Преобразует массив пар в массив первых элементов и массив вторых элементов.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | пара массивов, содержащих соответственно первую и вторую половину каждой пары элементов этого массива. |
Источник
Преобразует массив троек в три массива, по одному массиву на позицию тройки.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | тройка массивов, содержащих соответственно первый, второй и третий элементы из каждой тройки элементов этого массива. |
Источник
Копия этого массива с одним заменённым элементом.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | новый массив, являющийся копией этого массива с элементом на позиции |
| Исключения |
|
Источник
def view: IndexedSeqView[A]
Источник
Создаёт нестрогий фильтр этого массива.
Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новый массив, а второй только ограничивает область действия последующих map, flatMap, foreach и withFilter операций.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | объект класса |
Источник
Возвращает массив, образованный из этого массива и другой итерабельной коллекции путём объединения соответствующих элементов в пары. Если одна из двух коллекций длиннее другой, её оставшиеся элементы игнорируются.
| Параметры типа |
|
|---|---|
| Параметры значения |
|
| Возвращаемое значение | новый массив, содержащий пары, состоящие из соответствующих элементов этого массива и |
Источник
Возвращает массив, образованный из этого массива и другой итерабельной коллекции путём объединения соответствующих элементов в пары. Если одна из двух коллекций короче другой, для расширения более короткой используется значение заполнителя.
| Параметры значения |
|
|---|---|
| Возвращаемое значение | новый массив, содержащий пары, состоящие из соответствующих элементов этого массива и |
Источник
Объединяет этот массив со своими индексами.
| Возвращаемое значение | Новый массив, содержащий пары, состоящие из всех элементов этого массива, соединённых со своим индексом. Индексы начинаются с |
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/collection/ArrayOps.html