Les col·leccions són una part fonamental de la programació en Scala. Proporcionen estructures de dades eficients i flexibles per emmagatzemar i manipular grups d'elements. En aquest tema, explorarem els conceptes bàsics de les col·leccions en Scala, incloent-hi els tipus principals de col·leccions i les seves característiques.

Objectius d'Aprenentatge

Al final d'aquest tema, hauràs après:

  • Què són les col·leccions en Scala.
  • Els tipus principals de col·leccions en Scala.
  • Les característiques i diferències entre col·leccions mutables i immutables.
  • Com crear i utilitzar col·leccions bàsiques.

Tipus de Col·leccions en Scala

Scala proporciona una àmplia gamma de col·leccions, que es poden classificar en dues categories principals:

  1. Col·leccions Immutables: No es poden modificar després de la seva creació.
  2. Col·leccions Mutables: Es poden modificar després de la seva creació.

Col·leccions Immutables

Les col·leccions immutables són preferides en la programació funcional perquè garanteixen que les dades no canviaran, la qual cosa facilita el raonament sobre el codi i evita errors comuns relacionats amb la mutabilitat.

Exemples de col·leccions immutables:

  • List
  • Vector
  • Set
  • Map

Col·leccions Mutables

Les col·leccions mutables permeten modificar els elements després de la seva creació. Són útils en situacions on es necessita actualitzar les dades freqüentment.

Exemples de col·leccions mutables:

  • ArrayBuffer
  • ListBuffer
  • HashSet
  • HashMap

Creació de Col·leccions

Llistes Immutables

Les llistes immutables són una de les col·leccions més utilitzades en Scala. Es poden crear de diverses maneres:

val llistaBuida: List[Int] = List()
val llistaDeNumeros: List[Int] = List(1, 2, 3, 4, 5)
val llistaDeParaules: List[String] = List("Hola", "Món")

Vectors

Els vectors són similars a les llistes, però ofereixen un millor rendiment per a l'accés aleatori als elements:

val vectorDeNumeros: Vector[Int] = Vector(1, 2, 3, 4, 5)

Conjunts Immutables

Els conjunts immutables no permeten elements duplicats:

val conjuntDeNumeros: Set[Int] = Set(1, 2, 3, 4, 5)

Mapes Immutables

Els mapes immutables emmagatzemen parelles clau-valor:

val mapaDeNumeros: Map[Int, String] = Map(1 -> "Un", 2 -> "Dos", 3 -> "Tres")

Operacions Bàsiques amb Col·leccions

Accés als Elements

Pots accedir als elements d'una col·lecció utilitzant l'índex (per a col·leccions indexades) o la clau (per a mapes):

val primerElement = llistaDeNumeros(0) // Accedeix al primer element de la llista
val valor = mapaDeNumeros(1) // Accedeix al valor associat a la clau 1

Afegir i Eliminar Elements

Les col·leccions immutables no es poden modificar, però pots crear noves col·leccions amb elements afegits o eliminats:

val novaLlista = llistaDeNumeros :+ 6 // Afegeix un element al final de la llista
val nouConjunt = conjuntDeNumeros + 6 // Afegeix un element al conjunt
val nouMapa = mapaDeNumeros + (4 -> "Quatre") // Afegeix una nova parella clau-valor al mapa

Iteració sobre Col·leccions

Pots iterar sobre els elements d'una col·lecció utilitzant bucles o funcions d'ordre superior com foreach:

llistaDeNumeros.foreach(println) // Imprimeix cada element de la llista

Exercicis Pràctics

Exercici 1: Crear i Manipular una Llista

Crea una llista de números de l'1 al 5 i afegeix el número 6 al final. Imprimeix la llista resultant.

val llista = List(1, 2, 3, 4, 5)
val novaLlista = llista :+ 6
novaLlista.foreach(println)

Exercici 2: Crear i Manipular un Conjunt

Crea un conjunt de números de l'1 al 5 i afegeix el número 6. Imprimeix el conjunt resultant.

val conjunt = Set(1, 2, 3, 4, 5)
val nouConjunt = conjunt + 6
nouConjunt.foreach(println)

Exercici 3: Crear i Manipular un Mapa

Crea un mapa amb les parelles clau-valor (1 -> "Un", 2 -> "Dos", 3 -> "Tres"). Afegeix la parella (4 -> "Quatre") i imprimeix el mapa resultant.

val mapa = Map(1 -> "Un", 2 -> "Dos", 3 -> "Tres")
val nouMapa = mapa + (4 -> "Quatre")
nouMapa.foreach{ case (clau, valor) => println(s"$clau -> $valor") }

Resum

En aquest tema, hem introduït les col·leccions en Scala, incloent-hi els tipus principals de col·leccions i les seves característiques. Hem après a crear i utilitzar col·leccions bàsiques com llistes, vectors, conjunts i mapes. També hem explorat operacions bàsiques com l'accés als elements, l'afegit i l'eliminació d'elements, i la iteració sobre col·leccions. En els següents temes, aprofundirem en col·leccions específiques i les seves aplicacions pràctiques.

© Copyright 2024. Tots els drets reservats