Coleções Scala - Array

Scala fornece uma estrutura de dados, o array, que armazena uma coleção sequencial de tamanho fixo de elementos do mesmo tipo. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis ​​do mesmo tipo.

Em vez de declarar variáveis ​​individuais, como número0, número1, ... e número99, você declara uma variável de matriz, como números e usa números [0], números [1] e ..., números [99] para representar variáveis ​​individuais. Este tutorial apresenta como declarar variáveis ​​de array, criar arrays e processar arrays usando variáveis ​​indexadas. O índice do primeiro elemento de uma matriz é o número zero e o índice do último elemento é o número total de elementos menos um.

Declarando Variáveis ​​de Matriz

Para usar uma matriz em um programa, você deve declarar uma variável para fazer referência à matriz e deve especificar o tipo de matriz que a variável pode fazer referência.

A seguir está a sintaxe para declarar uma variável de matriz.

Sintaxe

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

or

var z = new Array[String](3)

Aqui, z é declarado como uma matriz de Strings que pode conter até três elementos. Os valores podem ser atribuídos a elementos individuais ou obter acesso a elementos individuais, isso pode ser feito usando comandos como o seguinte -

Comando

z(0) = "Zara"; z(1) = "Nuha"; z(4/2) = "Ayan"

Aqui, o último exemplo mostra que, em geral, o índice pode ser qualquer expressão que produza um número inteiro. Existe mais uma maneira de definir uma matriz -

var z = Array("Zara", "Nuha", "Ayan")

A imagem a seguir representa uma matriz myList. Aqui,myList possui dez valores duplos e os índices vão de 0 a 9.

Processando matrizes

Ao processar elementos de array, frequentemente usamos estruturas de controle de loop porque todos os elementos em um array são do mesmo tipo e o tamanho do array é conhecido.

Abaixo está um programa de exemplo mostrando como criar, inicializar e processar matrizes -

Exemplo

object Demo {
   def main(args: Array[String]) {
      var myList = Array(1.9, 2.9, 3.4, 3.5)
      
      // Print all the array elements
      for ( x <- myList ) {
         println( x )
      }
      // Summing all elements
      var total = 0.0;
      for ( i <- 0 to (myList.length - 1)) {
         total += myList(i);
      }
      println("Total is " + total);
      // Finding the largest element
      var max = myList(0);
      for ( i <- 1 to (myList.length - 1) ) {
         if (myList(i) > max) max = myList(i);
      }
      println("Max is " + max);
   }
}

Salve o programa acima em Demo.scala. Os seguintes comandos são usados ​​para compilar e executar este programa.

Comando

\>scalac Demo.scala
\>scala Demo

Resultado

1.9
2.9
3.4
3.5
Total is 11.7
Max is 3.5

Scala não suporta diretamente várias operações de array e fornece vários métodos para processar arrays em qualquer dimensão. Se você quiser usar os diferentes métodos, é necessário importarArray._ pacote.