Spec-Zone.ru › Scala 3.1

Объект scala.Array

Класс-компаньон • Исходный код

объект Array

Утилитарные методы для работы с массивами. Например:

val a = Array(1, 2)
val b = Array.ofDim[Int](2)
val c = Array.concat(a, b)

где объекты массивов a, b и c соответственно имеют значения Array(1, 2), Array(0, 0) и Array(1, 2, 0, 0).

Суперобъекты
класс Object
тракт Matchable
класс Any
Тип "self"
Array.type

Классы

Исходный код
final class UnapplySeqWrapper[T](a: Array[T]) extends AnyVal

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

Исходный код
def apply[T : ClassTag](xs: T*): Array[T]

Создаёт массив с заданными элементами.

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

элементы для помещения в массив

Возвращает

массив, содержащий все элементы из xs.

Исходный код
def apply(x: Boolean, xs: Boolean*): Array[Boolean]

Создаёт массив объектов типа Boolean

Исходный код
def apply(x: Byte, xs: Byte*): Array[Byte]

Создаёт массив объектов типа Byte

Исходный код
def apply(x: Short, xs: Short*): Array[Short]

Создаёт массив объектов типа Short

Исходный код
def apply(x: Char, xs: Char*): Array[Char]

Создаёт массив объектов типа Char

Исходный код
def apply(x: Int, xs: Int*): Array[Int]

Создаёт массив объектов типа Int

Исходный код
def apply(x: Long, xs: Long*): Array[Long]

Создаёт массив объектов типа Long

Исходный код
def apply(x: Float, xs: Float*): Array[Float]

Создаёт массив объектов типа Float

Исходный код
def apply(x: Double, xs: Double*): Array[Double]

Создаёт массив объектов типа Double

Исходный код
def apply(x: Unit, xs: Unit*): Array[Unit]

Создаёт массив объектов типа Unit

Исходный код
def concat[T : ClassTag](xss: Array[T]*): Array[T]

Объединяет все массивы в один массив.

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

заданные массивы

Возвращает

массив, созданный путём объединения xss

Исходный код
def copy(src: AnyRef, srcPos: Int, dest: AnyRef, destPos: Int, length: Int): Unit

Копирует один массив в другой. Эквивалентно Java's System.arraycopy(src, srcPos, dest, destPos, length), за исключением того, что это также работает для полиморфных и упакованных массивов.

Обратите внимание, что переданный массив dest будет изменён этим вызовом.

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

массив назначения.

destPos

начальная позиция в целевом массиве.

length

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

src

исходный массив.

srcPos

начальная позиция в исходном массиве.

См. также

java.lang.System#arraycopy

Исходный код
def copyAs[A](original: Array[_], newLength: Int)(implicit ct: ClassTag[A]): Array[A]

Копирует один массив в другой, усекая или заполняя значениями по умолчанию (при необходимости), чтобы копия имела указанную длину. Новый массив может иметь другой тип, чем исходный, при условии, что значения совместимы с присваиванием. При копировании между примитивными и объектами массивами поддерживается упаковка и распаковка.

Эквивалентно Java's java.util.Arrays.copyOf(original, newLength, newType), за исключением того, что это работает для всех комбинаций примитивных и объектных массивов в одном методе.

См. также

java.util.Arrays#copyOf

Исходный код
def copyOf[A](original: Array[A], newLength: Int): Array[A]

Копирует один массив в другой, усекая или заполняя значениями по умолчанию (при необходимости), чтобы копия имела указанную длину.

Эквивалентно Java's java.util.Arrays.copyOf(original, newLength), за исключением того, что это работает для примитивных и объектных массивов в одном методе.

См. также

java.util.Arrays#copyOf

Исходный код
def empty[T : ClassTag]: Array[T]

Возвращает массив длины 0

Исходный код
def equals(xs: Array[AnyRef], ys: Array[AnyRef]): Boolean

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

Более эффективная версия xs.sameElements(ys).

Обратите внимание, что массивы неизменны в Scala, но может быть безопасно привести массив произвольного ссылочного типа к Array[AnyRef]. Массивы на JVM ковариантны по типу элементов.

Array.equals(xs.asInstanceOf[Array[AnyRef]], ys.asInstanceOf[Array[AnyRef]])

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

массив типа AnyRef

ys

массив типа AnyRef

Возвращает

true, если соответствующие элементы равны

Исходный код
def fill[T : ClassTag](n: Int)(elem: => T): Array[T]

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

Обратите внимание, что это означает, что elem вычисляется в общей сложности n раз:

scala> Array.fill(3){ math.random }
res3: Array[Double] = Array(0.365461167592537, 1.550395944913685E-4, 0.7907242137333306)
Параметры значения
elem

вычисление элемента

n

количество желаемых элементов

Возвращает

массив размера n, где каждый элемент содержит результат вычисления elem.

Исходный код
def fill[T : ClassTag](n1: Int, n2: Int)(elem: => T): Array[Array[T]]

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

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

вычисление элемента

n1

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

n2

количество элементов во втором измерении

Источник
def fill[T : ClassTag](n1: Int, n2: Int, n3: Int)(elem: => T): Array[Array[Array[T]]]

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

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

вычисление элемента

n1

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

n2

количество элементов во втором измерении

n3

количество элементов в третьем измерении

Источник
def fill[T : ClassTag](n1: Int, n2: Int, n3: Int, n4: Int)(elem: => T): Array[Array[Array[Array[T]]]]

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

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

вычисление элемента

n1

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

n2

количество элементов во втором измерении

n3

количество элементов в третьем измерении

n4

количество элементов в четвертом измерении

Источник
def fill[T : ClassTag](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(elem: => T): Array[Array[Array[Array[Array[T]]]]]

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

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

вычисление элемента

n1

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

n2

количество элементов во втором измерении

n3

количество элементов в третьем измерении

n4

количество элементов в четвертом измерении

n5

количество элементов в пятом измерении

Источник
def from[A : ClassTag](it: IterableOnce[A]): Array[A]

Создает массив из итерируемого набора.

scala> val a = Array.from(Seq(1, 5))
val a: Array[Int] = Array(1, 5)

scala> val b = Array.from(Range(1, 5))
val b: Array[Int] = Array(1, 2, 3, 4)
Параметры значения
it

итерируемый набор

Возвращает

массив, состоящий из элементов итерируемого набора

Источник
def iterate[T : ClassTag](start: T, len: Int)(f: T => T): Array[T]

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

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

функция, которая многократно применяется

len

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

start

начальное значение массива

Возвращает

массив, возвращающий len значения в последовательности start, f(start), f(f(start)), ...

Источник
def newBuilder[T](implicit t: ClassTag[T]): ArrayBuilder[T]

Возвращает новый scala.collection.mutable.ArrayBuilder.

Источник
def ofDim[T : ClassTag](n1: Int): Array[T]

Создает массив с заданными измерениями

Источник
def ofDim[T : ClassTag](n1: Int, n2: Int): Array[Array[T]]

Создает двумерный массив

Источник
def ofDim[T : ClassTag](n1: Int, n2: Int, n3: Int): Array[Array[Array[T]]]

Создает трехмерный массив

Источник
def ofDim[T : ClassTag](n1: Int, n2: Int, n3: Int, n4: Int): Array[Array[Array[Array[T]]]]

Создает четырехмерный массив

Источник
def ofDim[T : ClassTag](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int): Array[Array[Array[Array[Array[T]]]]]

Создает пятимерный массив

Источник
def range(start: Int, end: Int): Array[Int]

Возвращает массив, содержащий последовательность возрастающих целых чисел в диапазоне.

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

конечное значение массива, исключая (другими словами, это первое значение, которое не возвращается)

start

начальное значение массива

Возвращает

массив со значениями в диапазоне start, start + 1, ..., end - 1 до, но не включая end.

Источник
def range(start: Int, end: Int, step: Int): Array[Int]

Возвращает массив, содержащий равномерно распределенные значения в определенном целочисленном интервале.

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

конечное значение массива, исключая (другими словами, это первое значение, которое не возвращается)

start

начальное значение массива

step

значение приращения массива (не может быть равно нулю)

Возвращает

массив со значениями в start, start + step, ... до, но не включая end

Источник
def tabulate[T : ClassTag](n: Int)(f: Int => T): Array[T]

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

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

Функция, вычисляющая значения элемента

n

Количество элементов в массиве

Возвращает

Перебираемый объект, состоящий из элементов f(0),f(1), ..., f(n - 1)

Источник
def tabulate[T : ClassTag](n1: Int, n2: Int)(f: (Int, Int) => T): Array[Array[T]]

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

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

Функция, вычисляющая значения элемента

n1

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

n2

количество элементов во втором измерении

Источник
def tabulate[T : ClassTag](n1: Int, n2: Int, n3: Int)(f: (Int, Int, Int) => T): Array[Array[Array[T]]]

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

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

Функция, вычисляющая значения элементов

n1

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

n2

количество элементов во втором измерении

n3

количество элементов в третьем измерении

Исходный код
def tabulate[T : ClassTag](n1: Int, n2: Int, n3: Int, n4: Int)(f: (Int, Int, Int, Int) => T): Array[Array[Array[Array[T]]]]

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

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

Функция, вычисляющая значения элементов

n1

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

n2

количество элементов во втором измерении

n3

количество элементов в третьем измерении

n4

количество элементов в четвертом измерении

Исходный код
def tabulate[T : ClassTag](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(f: (Int, Int, Int, Int, Int) => T): Array[Array[Array[Array[Array[T]]]]]

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

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

Функция, вычисляющая значения элементов

n1

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

n2

количество элементов во втором измерении

n3

количество элементов в третьем измерении

n4

количество элементов в четвертом измерении

n5

количество элементов в пятом измерении

Исходный код
def unapplySeq[T](x: Array[T]): UnapplySeqWrapper[T]

Вызывается в совпадении шаблонов, например, { case Array(x,y,z) => println('3 elements')}.

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

значение селектора

Возвращаемое значение

последовательность, заключенная в scala.Some, если x является массивом, в противном случае None

Конкретные поля

Исходный код
val emptyBooleanArray: Array[Boolean]

Исходный код
val emptyByteArray: Array[Byte]

Исходный код
val emptyCharArray: Array[Char]

Исходный код
val emptyDoubleArray: Array[Double]

Исходный код
val emptyFloatArray: Array[Float]

Исходный код
val emptyIntArray: Array[Int]

Исходный код
val emptyLongArray: Array[Long]

Исходный код
val emptyObjectArray: Array[Object]

Исходный код
val emptyShortArray: Array[Short]

Неявные значения

Исходный код
implicit def toFactory[A : ClassTag](dummy: Array.type): Factory[A, Array[A]]

Предоставляет неявное преобразование из объекта Array в фабрику коллекций

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/Array$.html

Spec-Zone.ru

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