Ir al contenido principal

Listas en Scala

Descubre qué son las listas y cómo aprovecharlas en el lenguaje de programación Scala.
Actualizado 17 sept 2026  · 6 min leer

Explorar con IA

ChatGPTClaudePerplexity

Puede que también te interesen estos tutoriales:

Introducción

List (abstract data type)
Fuente: Wikipedia - List (abstract data type)

Estructura de lista simplemente enlazada que implementa una lista con 3 elementos enteros (fuente: Wikipedia - List (abstract data type)).

En general, una lista es una secuencia de tipos de datos abstractos que representa un número fijo de valores. Esos valores pueden manipularse mediante un programa y también pueden repetirse dentro de la lista. Un ejemplo de instancia de lista aparece en la figura superior como una lista simplemente enlazada formada por tres enteros. La lista también se considera una estructura de datos; un ejemplo típico son las listas enlazadas.

Muchos lenguajes de programación incorporan listas; un caso muy extendido es Python. A menudo, una lista se construye escribiendo los elementos en secuencia, separados por comas, puntos y coma o espacios, dentro de un par de delimitadores como paréntesis (), corchetes [], llaves {} o ángulos <>. Algunos lenguajes como Python permiten indexar o segmentar (slice) las listas como si fueran arrays; en ese caso, el tipo de datos se describe con más precisión como un array (fuente: Wikipedia - List (abstract data type)).

En Scala, una lista es una colección que contiene datos inmutables; es decir, una vez creada, no se puede modificar. En Scala, la lista representa una lista enlazada.

En una lista de Scala, cada elemento no tiene por qué ser del mismo tipo de datos. La implementación de las listas en Scala utiliza estado mutable internamente durante la fase de construcción. En Scala, las listas están definidas en el paquete scala.collection.immutable y, por tanto, son inmutables. Por último, una lista de Scala ofrece varios métodos como add, prepend, max, min, etc.

Sintaxis para definir una lista en Scala

val variable_name: List[type] = List(item1, item2, item3) o val variable_name = List(item1, item2, item3) Una lista en Scala se parece mucho a un array de Scala. Sin embargo, la lista en Scala es inmutable y representa una estructura de datos de lista enlazada. En cambio, el array en Scala es plano y mutable.

Veamos rápidamente esta diferencia con un ejemplo.

Scala List vs. Scala Array

Primero definamos un array en Scala.

Después, modifica el valor en el índice 1 (recuerda que los arrays en Scala empiezan en 0) y comprueba si puedes actualizarlo.

Scala Array

Como ves en el fragmento anterior, el array de Scala te permitió modificar el valor en el índice 1.

Ahora define una Scala List e intenta hacer lo mismo.

Scala List

Bien, a partir del ejemplo anterior puedes concluir que, como las listas de Scala son inmutables, al intentar actualizar el valor se produce un error.

Métodos de Scala List

  • head: devuelve el primer elemento de la lista.

  • tail: devuelve todos los elementos excepto el primero.

  • isEmpty: comprueba si la lista está vacía; en ese caso devuelve True, si no, False.

  • fill(): crea una lista uniforme con cero o más copias del elemento indicado.

  • reverse: invierte el orden de los elementos de la lista.

  • $:::$ o $.:::$ o .concat(): concatena dos o más listas.

  • tabulate(): tabula una lista. Es similar en espíritu a fill(), pero a diferencia de fill(), recibe dos argumentos. El primero indica las dimensiones de la lista que se va a crear y el segundo describe los elementos de la lista, que se calculan a partir de una función.

No te preocupes si alguno de estos métodos no te resulta del todo claro: los implementarás en Scala con un ejemplo. Pero antes, aprendamos a definir listas en Scala.

Vas a crear listas en Scala con tipos de datos string e integer (tanto 1D como 2D). También verás cómo crear una lista que combine cadenas y enteros.

Lista de enteros 1D

Lista de enteros 1-D

Lista 1D con enteros y cadenas

Lista 1-D con enteros y cadenas

Lista de cadenas 1D

Lista de cadenas 1-D

Lista 2D

Lista 2-D

Operaciones aritméticas con listas

En este ejemplo, usarás listas en lugar de simples variables. A diferencia de una variable, una lista puede contener n valores; realizarás operaciones aritméticas sobre dos listas en lugar de sobre dos variables.

Veamos rápidamente cómo hacerlo.

Para aplicar las operaciones, utilizarás la función zipped.map seguida de las listas x e y. Luego indicarás en el método zipped.map la operación que quieres realizar como argumento.

Operaciones aritméticas con listas
Operaciones aritméticas con listas

Por último, escribamos un código que reúna todos estos métodos.

object Scala_List_Methods
{

def main(args: Array[String])
{
    // define two lists
    val x = List(1, 40, 10)
    val y = List(20, 25, 30)
    val z = List("DataCamp", "Tutorials", "Are", "The", "Best")

    //Head
    println();
    println("Head of list x, y, z = " + (x.head, y.head, z.head));
    println();

    //Tail
    println("Tail of list x, y, z = " + (x.tail, y.tail, z.tail));
    println();

    //isEmpty
    println("Is list x, y, z empty? = " + (x.isEmpty, y.isEmpty, z.isEmpty));
    println();

    //Concatenate
    println("Concatenating x, y, z lists with the first method = " + (x:::y:::z));
    println("Concatenating x, y, z lists with the second method = " + ((x).:::(y).:::(z)));
    println("Concatenating x, y, z lists with the third method = " + (List.concat(x,y,z)));
    println();

    //Reverse
    println("Reverse of x, y, z is = " + (x.reverse, y.reverse, z.reverse));
    println();

    //Fill
    println("Output of Fill method is = " + (List.fill(5)(z)));
    println();

    //Tabulate
    println("Output of Tabulate method is = " + (List.tabulate(5)(x => x * x * x)));
}
}
Operaciones aritméticas con listas

Conclusión

Enhorabuena por completar este tutorial de Scala.

No dudes en dejar tus preguntas sobre este tutorial en los comentarios de abajo.

Temas
Scala

Cursos de Scala

Curso

Introducción a Scala

3 h
27.1K
Comienza tu viaje con Scala, un lenguaje popular para aplicaciones escalables e infraestructura de ingeniería de datos.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado
R Project

blog

Las 8 mejores ideas de proyectos R para 2026

Descubre qué es R y todas las ventajas de utilizarlo, con ejemplos e ideas nuevas para un proyecto.
Elena Kosourova's photo

Elena Kosourova

14 min

Tutorial

Creación de una lista en R

Practica Listas en R utilizando el material del curso Introducción a R de DataCamp.
Ryan Sheehy's photo

Ryan Sheehy

3 min

Tutorial

Python Copy List: Lo que debes saber

Comprende cómo copiar listas en Python. Aprende a utilizar las funciones copy() y list(). Descubre la diferencia entre copias superficiales y profundas.
Allan Ouko's photo

Allan Ouko

7 min

Tutorial

Tutorial y ejemplos de funciones y métodos de listas en Python

Aprende sobre las funciones y métodos de las listas de Python. ¡Sigue ahora los ejemplos de código para list() y otras funciones y métodos de Python!
Abid Ali Awan's photo

Abid Ali Awan

7 min

Tutorial

Guía completa de listas vacías en Python

Aprenda las principales operaciones con listas y los casos de uso de las listas vacías en Python.
Adel Nehme's photo

Adel Nehme

5 min

Tutorial

Tutorial de Python sobre conjuntos y teoría de conjuntos

Aprende sobre los conjuntos en Python: qué son, cómo crearlos, cuándo usarlos, funciones incorporadas y su relación con las operaciones de la teoría de conjuntos.
DataCamp Team's photo

DataCamp Team

13 min

Ver MásVer Más