La array en Scala es homogénea y mutable , es decir, contiene elementos del mismo tipo de datos y sus elementos pueden cambiar, pero el tamaño de la array no puede cambiar. Para crear una secuencia indexada mutable cuyo tamaño puede cambiar se utiliza la clase ArrayBuffer . Para usar ArrayBuffer, se importa la clase scala.collection.mutable.ArrayBuffer , se crea una instancia de ArrayBuffer.
Internamente, un ArrayBuffer es una array de elementos, así como el tamaño actual de la array de la tienda. Cuando se agrega un elemento a un ArrayBuffer, se verifica este tamaño. Si la array subyacente no está llena, el elemento se agrega directamente a la array. Si la array subyacente está llena, se construye una array más grande y todos los elementos se copian en la nueva array. La clave es que la nueva array se construya más grande que lo requerido para la adición actual.
Ejemplo:
var name = new ArrayBuffer[datatype]() // empty buffer is created var name = new ArrayBuffer("chandan", "gfg", "geeksforgeeks")
En el ejemplo anterior, primero, se crea un búfer vacío aquí, el tipo de datos indica el tipo de datos, como un entero, una string. Luego creó un búfer con tres elementos, de tipo string.
Operaciones en ArrayBuffer
- Creando una instancia de ArrayBuffer:
// Scala program to create an ArrayBuffer
// ArrayBuffer class is imported
import
scala.collection.mutable.ArrayBuffer
// Creating Object
object
GFG
{
// Main Method
def
main(args
:
Array[String])
{
// Instance of ArrayBuffer is created
var
name
=
ArrayBuffer[String]()
name +
=
"GeeksForGeeks"
name +
=
"gfg"
name +
=
"Chandan"
println(name)
}
}
Producción:ArrayBuffer(GeeksForGeeks, gfg, Chandan)
- Elemento de acceso desde ArrayBuffer:
se accede al elemento igual que a la array, ArrayBuffer(i) se usa para acceder al elemento de índice de la array.// Scala program to access element of ArrayBuffer
// ArrayBuffer class is imported
import
scala.collection.mutable.ArrayBuffer
// Creating Object
object
GFG
{
// Main Method
def
main(args
:
Array[String])
{
// Instance of ArrayBuffer is created
var
name
=
ArrayBuffer[String]()
name +
=
"GeeksForGeeks"
name +
=
"gfg"
name +
=
"Chandan"
// accessing 1th index element of arraybuffer
println(name(
1
))
}
}
Producción:gfg
- Agregar elementos en ArrayBuffer:
- Agregar un solo elemento al búfer
ArrayBuffer+=( element)
- Agregue dos o más elementos (el método tiene un parámetro varargs)
ArrayBuffer+= (element1, element2, ..., elementN )
- Agregue uno o más elementos (usa un parámetro varargs)
ArrayBuffer.append( elem1, elem2, ... elemN)
Ejemplo:
// Scala program to add element in ArrayBuffer
// ArrayBuffer class is imported
import
scala.collection.mutable.ArrayBuffer
// Creating Object
object
GFG
{
// Main Method
def
main(args
:
Array[String])
{
// Instance of ArrayBuffer is created
var
name
=
ArrayBuffer[String]()
// adding one element
name +
=
"GeeksForGeeks"
// add two or more elements
name +
=
(
"gfg"
,
"chandan"
)
// adding one or more element using append method
name.append(
"S-series"
,
"Ritesh"
)
// printing arraybuffer
println(name)
}
}
Producción:ArrayBuffer(GeeksForGeeks, gfg, chandan, S-series, Ritesh)
- Agregar un solo elemento al búfer
- Eliminación de elementos de ArrayBuffer:
- Eliminar un elemento
ArrayBuffer-= (element)
- Eliminar varios elementos
ArrayBuffer-= (elem1, elem2, ....., elemN)
Ejemplo:
// Scala program to delete element from ArrayBuffer
// ArrayBuffer class is imported
import
scala.collection.mutable.ArrayBuffer
// Creating Object
object
GFG
{
// Main Method
def
main(args
:
Array[String])
{
// Instance of ArrayBuffer is created
var
name
=
ArrayBuffer(
"GeeksForGeeks"
,
"gfg"
,
"chandan"
,
"S-series"
,
"Ritesh"
)
// deletes one element
name -
=
"GeeksForGeeks"
// deletes two or more elements
name -
=
(
"gfg"
,
"chandan"
)
// printing resultant arraybuffer
println(name)
}
}
Producción:ArrayBuffer(S-series, Ritesh)
- Eliminar un elemento
- Eliminar elementos de ArrayBuffer usando ArrayBuffer.remove() :
El método remove se usa para eliminar un elemento por su posición en ArrayBuffer, o una serie de elementos que comienzan en una posición inicial.
Ejemplo:
// Scala program for remove method, on ArrayBuffer
// ArrayBuffer class is imported
import
scala.collection.mutable.ArrayBuffer
// Creating Object
object
GFG
{
// Main Method
def
main(args
:
Array[String])
{
// Instance of ArrayBuffer is created
var
name
=
ArrayBuffer(
"GeeksForGeeks"
,
"gfg"
,
"chandan"
,
"S-series"
,
"Ritesh"
)
// removing 0th index element
name.remove(
0
)
// printing resultant arraybuffer
println(name)
name.remove(
1
,
3
)
// printing resultant arraybuffer
println(name)
}
}
Producción:ArrayBuffer(gfg, chandan, S-series, Ritesh) ArrayBuffer(gfg)