Coleções de Scala - ArrayBuffer
Scala fornece uma estrutura de dados, o ArrayBuffer, que pode mudar de tamanho quando o tamanho inicial for insuficiente. Como o array tem um tamanho fixo e mais elementos não podem ser ocupados em um array, ArrayBuffer é uma alternativa para o array onde o tamanho é flexível.
Internamente, o ArrayBuffer mantém uma matriz do tamanho atual para armazenar elementos. Quando um novo elemento é adicionado, o tamanho é verificado. No caso do array subjacente estar cheio, um novo array maior é criado e todos os elementos são copiados para um array maior.
Declarando Variáveis ArrayBuffer
A seguir está a sintaxe para declarar uma variável ArrayBuffer.
Sintaxe
var z = ArrayBuffer[String]()
Aqui, z é declarado como um buffer de matriz de Strings que está inicialmente vazio. Os valores podem ser adicionados usando comandos como os seguintes -
Comando
z += "Zara";
z += "Nuha";
z += "Ayan";
Processando ArrayBuffer
Abaixo está um programa de exemplo mostrando como criar, inicializar e processar ArrayBuffer -
Exemplo
import scala.collection.mutable.ArrayBuffer
object Demo {
def main(args: Array[String]) = {
var myList = ArrayBuffer("Zara","Nuha","Ayan")
println(myList);
// Add an element
myList += "Welcome";
// Add two element
myList += ("To", "Tutorialspoint");
println(myList);
// Remove an element
myList -= "Welcome";
// print second element
println(myList(1));
}
}
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
ArrayBuffer(Zara, Nuha, Ayan)
ArrayBuffer(Zara, Nuha, Ayan, Welcome, To, Tutorialspoint)
Nuha