Latest web development tutorials

Scala массив

Массив Scala язык при условии, используется для хранения неподвижных элементов размера одного и того же типа, по одному для каждого затвора редакторов массива языка, являются важными структурами данных.

Декларация переменной массива не объявлен номер 0, number1, ..., number99 отдельной переменной, но декларация, как этой переменной числа, а затем использовать цифры [0], цифры [1], ..., чисел [ 99], чтобы представлять отдельную переменную. Элемент массива определяется индексом доступен.

Первый элемент индекса массива 0, индекс последнего элемента является число элементов минус один.


Объявляем массив

Ниже приведен синтаксис Scala декларация массива:

var z:Array[String] = new Array[String](3)

或

var z = new Array[String](3)

Выше синтаксис, г объявить тип строки массива, длина массива составляет 3, может хранить три элемента. Мы можем установить значение для каждого элемента, а также получить доступ к каждому элементу по индексу, следующим образом:

z(0) = "w3big"; z(1) = "Baidu"; z(4/2) = "Google"

Индекс последнего элемента в выражении с использованием4/2 в качестве индекса, подобно г (2) = "Google".

Мы также можем определить массив, используя следующие методы:

var z = Array("w3big", "Baidu", "Google")

На следующем рисунке показан массив длины MyList 10, значение индекса 0-9:


Работа с массивами

Тип и размер элемента массива массива определяется, поэтому при обработке элементов массива, мы часто используем основной цикл.

Следующий пример демонстрирует создание массива, процесс инициализации:

object Test {
   def main(args: Array[String]) {
      var myList = Array(1.9, 2.9, 3.4, 3.5)
      
      // 输出所有数组元素
      for ( x <- myList ) {
         println( x )
      }

      // 计算数组所有元素的总会
      var total = 0.0;
      for ( i <- 0 to (myList.length - 1)) {
         total += myList(i);
      }
      println("总和为 " + total);

      // 查找数组中的最大元素
      var max = myList(0);
      for ( i <- 1 to (myList.length - 1) ) {
         if (myList(i) > max) max = myList(i);
      }
      println("最大值为 " + max);
    
   }
}

Реализация указанного выше кода, выход:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
总和为 11.7
最大值为 3.5

Многомерные Массивы

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

Выше приведен пример определенного двумерного массива:

var myMatrix = ofDim[Int](3,3)

Примеры массива содержит три элемента массива, каждый элемент массива в свою очередь, содержит три значения.

Далее мы рассмотрим полный пример двумерного массива обработки:

import Array._

object Test {
   def main(args: Array[String]) {
      var myMatrix = ofDim[Int](3,3)
      
      // 创建矩阵
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            myMatrix(i)(j) = j;
         }
      }
      
      // 打印二维阵列
      for (i <- 0 to 2) {
         for ( j <- 0 to 2) {
            print(" " + myMatrix(i)(j));
         }
         println();
      }
    
   }
}

Запуск экземпляра »

Реализация указанного выше кода, выход:

$ scalac Test.scala
$ scala Test
0 1 2
0 1 2
0 1 2

Слияние массив

Ниже приведены примеры, мы используем CONCAT () метод, чтобы объединить два массива, Concat () метод принимает несколько параметров массива:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = Array(1.9, 2.9, 3.4, 3.5)
      var myList2 = Array(8.9, 7.9, 0.4, 1.5)

      var myList3 =  concat( myList1, myList2)
      
      // 输出所有数组元素
      for ( x <- myList3 ) {
         println( x )
      }
   }
}

Реализация указанного выше кода, выход:

$ scalac Test.scala
$ scala Test
1.9
2.9
3.4
3.5
8.9
7.9
0.4
1.5

Создать интервал массива

Ниже приведены примеры, мы используем метод диапазона () для создания массива в широком диапазоне. Диапазон () метод последнего параметра с шагом 1 по умолчанию:

import Array._

object Test {
   def main(args: Array[String]) {
      var myList1 = range(10, 20, 2)
      var myList2 = range(10,20)

      // 输出所有数组元素
      for ( x <- myList1 ) {
         print( " " + x )
      }
      println()
      for ( x <- myList2 ) {
         print( " " + x )
      }
   }
}

Реализация указанного выше кода, выход:

$ scalac Test.scala
$ scala Test
10 12 14 16 18
10 11 12 13 14 15 16 17 18 19

метод массива Scala

Следующая таблица является важным методом для обработки языка Scala массив, прежде чем использовать его , мы должны использоватьимпорт Array._ введенный пакет.

Нет. Метод и Описание
1

Защиту применить (х: Т, хз : T *): Array [T]

Создание массива заданного объекта T, значение T может быть единицы, Double, Float, Long, Int, Char, Short, Byte, Boolean.

2

Защиту Concat [T] (XSS: Array [T] *): Array [T]

Слияние массив

3

Защиту копирования (ЦСИ: AnyRef, srcPos : Int, адр: AnyRef, destPos: Int, длина: Int): Unit

Количество копий массива в другой массив. Эквивалент System.arraycopy в Java (SRC, srcPos, Dest, destPos, длина).

4

Защиту пусто [T]: Array [ T]

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

5

Защиту итерацию [T] (начало: T, Len: Int) (F: (T) => T): Array [T]

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

Примеры выше массива начального значения 0 и длиной 3 вычислить функциюа => а + 1:

scala> Array.iterate(0,3)(a=>a+1)
res1: Array[Int] = Array(0, 1, 2)
6

Защиту заполнить [T] (п: Int) (элем: => T): Array [T]

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

7

Защиту заполнить [T] (n1: Int, п2: Int) (элем: => T): Array [Array [T]]

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

8

Защиту ofDim [T] (n1: Int): Array [T]

Создать массив заданной длины

9

Защиту ofDim [T] (n1: Int, п2: Int): Array [Array [T]]

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

10

Защиту ofDim [T] (n1: Int, п2: Int, n3: Int): Array [Array [Array [T]]]

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

11

Диапазон четкости (старт: Int, окончание : Int, шаг: Int): Array [Int]

Создание массива в пределах указанного диапазона, приращения шага между каждым элементом

12

Диапазон четкости (старт: Int, окончание : Int): Array [Int]

Создание массива в пределах указанного диапазона

13

Защиту табулирование [T] (п: Int) (F: (Int) => T): Array [T]

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

Приведенные выше примеры возвращают три элемента:

scala> Array.tabulate(3)(a => a + 5)
res0: Array[Int] = Array(5, 6, 7)
14

Защиту табулирование [T] (n1: Int, n2: Int) (F: (Int, Int) => T): Array [Array [T]]

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