En aquest tema, explorarem dues de les col·leccions més utilitzades en Scala: les llistes (List) i els arrays (Array). Aprendrem com crear-les, manipular-les i utilitzar-les en diferents contextos.

Objectius d'Aprenentatge

  • Entendre la diferència entre List i Array.
  • Aprendre a crear i inicialitzar llistes i arrays.
  • Manipular elements dins de llistes i arrays.
  • Utilitzar les operacions comunes disponibles per a aquestes col·leccions.

Llistes en Scala

Què és una Llista?

Una List en Scala és una col·lecció immutable que manté els elements en un ordre seqüencial. Les llistes són molt utilitzades en la programació funcional per la seva immutabilitat i facilitat d'ús.

Creació d'una Llista

val fruits = List("Poma", "Plàtan", "Taronja")

Accés als Elements

val primerFruit = fruits.head // "Poma"
val restaFruits = fruits.tail // List("Plàtan", "Taronja")

Operacions Comunes

  • Afegir Elements: Com que les llistes són immutables, afegir un element crea una nova llista.

    val mésFruits = "Mango" :: fruits // List("Mango", "Poma", "Plàtan", "Taronja")
    
  • Concatenar Llistes:

    val altresFruits = List("Kiwi", "Maduixa")
    val totsElsFruits = fruits ::: altresFruits // List("Poma", "Plàtan", "Taronja", "Kiwi", "Maduixa")
    
  • Mapejar Elements:

    val fruitsEnMajúscules = fruits.map(_.toUpperCase) // List("POMA", "PLÀTAN", "TARONJA")
    

Exemple Pràctic

val números = List(1, 2, 3, 4, 5)
val númerosDobles = números.map(_ * 2) // List(2, 4, 6, 8, 10)

Arrays en Scala

Què és un Array?

Un Array en Scala és una col·lecció mutable que manté els elements en un ordre seqüencial. Els arrays permeten l'accés i la modificació dels elements per índex.

Creació d'un Array

val números = Array(1, 2, 3, 4, 5)

Accés i Modificació dels Elements

val primerNúmero = números(0) // 1
números(0) = 10 // Ara l'array és Array(10, 2, 3, 4, 5)

Operacions Comunes

  • Afegir Elements: Els arrays tenen una mida fixa, per tant, no es poden afegir elements directament. Cal crear un nou array.

    val mésNúmeros = números :+ 6 // Array(10, 2, 3, 4, 5, 6)
    
  • Concatenar Arrays:

    val altresNúmeros = Array(6, 7, 8)
    val totsElsNúmeros = números ++ altresNúmeros // Array(10, 2, 3, 4, 5, 6, 7, 8)
    
  • Mapejar Elements:

    val númerosDobles = números.map(_ * 2) // Array(20, 4, 6, 8, 10)
    

Exemple Pràctic

val noms = Array("Anna", "Bernat", "Carla")
val nomsEnMinúscules = noms.map(_.toLowerCase) // Array("anna", "bernat", "carla")

Comparació entre Llistes i Arrays

Característica List Array
Immutabilitat No
Mida Dinàmica Fixa
Accés per Índex No (només cap i cua)
Modificació d'Elements No
Ús Comú Programació funcional Programació imperativa

Exercicis Pràctics

Exercici 1: Crear i Manipular una Llista

  1. Crea una llista de números de l'1 al 5.
  2. Afegeix el número 6 al principi de la llista.
  3. Concatena la llista amb una altra llista que contingui els números 7, 8 i 9.
  4. Mapeja la llista resultant per obtenir els quadrats dels números.

Solució

val números = List(1, 2, 3, 4, 5)
val mésNúmeros = 6 :: números
val altresNúmeros = List(7, 8, 9)
val totsElsNúmeros = mésNúmeros ::: altresNúmeros
val quadrats = totsElsNúmeros.map(n => n * n) // List(36, 1, 4, 9, 16, 25, 49, 64, 81)

Exercici 2: Crear i Manipular un Array

  1. Crea un array de noms amb els valors "Joan", "Maria" i "Pere".
  2. Canvia el primer element a "Anna".
  3. Afegeix el nom "Laura" al final de l'array.
  4. Mapeja l'array resultant per obtenir els noms en majúscules.

Solució

val noms = Array("Joan", "Maria", "Pere")
noms(0) = "Anna"
val mésNoms = noms :+ "Laura"
val nomsEnMajúscules = mésNoms.map(_.toUpperCase) // Array("ANNA", "MARIA", "PERE", "LAURA")

Conclusió

En aquesta secció, hem après les diferències clau entre les llistes i els arrays en Scala, com crear-los, accedir-hi i manipular-los. Les llistes són immutables i més adequades per a la programació funcional, mentre que els arrays són mutables i més adequats per a la programació imperativa. Amb aquests coneixements, estàs preparat per utilitzar aquestes col·leccions en els teus projectes Scala.

© Copyright 2024. Tots els drets reservats