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