Introducció
Els arrays són una estructura de dades fonamental en Java que permet emmagatzemar múltiples valors del mateix tipus en una sola variable. Els arrays són molt útils quan necessitem treballar amb col·leccions de dades de mida fixa.
Conceptes Clau
- Definició d'Array: Un array és una col·lecció d'elements, tots del mateix tipus, emmagatzemats en posicions contigües de memòria.
- Índex: Cada element d'un array es pot accedir mitjançant un índex, que comença en 0.
- Mida de l'Array: La mida de l'array es defineix en el moment de la seva creació i no es pot canviar després.
Declaració i Inicialització
Declaració
Per declarar un array en Java, es pot utilitzar la següent sintaxi:
Inicialització
Hi ha diverses maneres d'inicialitzar un array:
- Inicialització en el moment de la declaració:
- Inicialització amb valors literals:
- Inicialització després de la declaració:
Accés als Elements
Els elements d'un array es poden accedir i modificar utilitzant el seu índex:
int[] myArray = {1, 2, 3, 4, 5}; System.out.println(myArray[0]); // Imprimeix 1 myArray[1] = 10; // Canvia el segon element a 10
Iteració sobre Arrays
Utilitzant un bucle for
int[] myArray = {1, 2, 3, 4, 5}; for (int i = 0; i < myArray.length; i++) { System.out.println(myArray[i]); }
Utilitzant un bucle for-each
Arrays Multidimensionals
Els arrays multidimensionals són arrays d'arrays. El més comú és l'array bidimensional, que es pot imaginar com una matriu.
Declaració i Inicialització
Accés als Elements
System.out.println(matrix[0][0]); // Imprimeix 1 matrix[1][1] = 10; // Canvia l'element al centre a 10
Iteració sobre Arrays Multidimensionals
for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { System.out.println(matrix[i][j]); } }
Exercicis Pràctics
Exercici 1: Suma d'Elements d'un Array
Descripció: Escriu un programa que sumi tots els elements d'un array d'enters.
Codi:
public class ArraySum { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; int sum = 0; for (int number : numbers) { sum += number; } System.out.println("La suma dels elements és: " + sum); } }
Exercici 2: Matriu Transposada
Descripció: Escriu un programa que calculi la transposada d'una matriu.
Codi:
public class MatrixTranspose { public static void main(String[] args) { int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; int[][] transpose = new int[matrix[0].length][matrix.length]; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { transpose[j][i] = matrix[i][j]; } } System.out.println("Matriu transposada:"); for (int i = 0; i < transpose.length; i++) { for (int j = 0; j < transpose[i].length; j++) { System.out.print(transpose[i][j] + " "); } System.out.println(); } } }
Errors Comuns
- Índex Fora de Límits: Intentar accedir a un índex que no existeix en l'array.
- Confusió entre Índex i Valor: Recorda que els índexs comencen en 0.
- Inicialització Incorrecta: No inicialitzar l'array abans d'accedir-hi.
Resum
En aquesta secció, hem après què són els arrays, com declarar-los, inicialitzar-los i accedir als seus elements. També hem vist com treballar amb arrays multidimensionals i hem practicat amb alguns exercicis. Els arrays són una eina poderosa i fonamental en la programació en Java, i comprendre'ls bé és essencial per a qualsevol programador.
Curs de Programació en Java
Mòdul 1: Introducció a Java
- Introducció a Java
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Operadors
Mòdul 2: Flux de Control
Mòdul 3: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Mètodes
- Constructors
- Herència
- Polimorfisme
- Encapsulació
- Abstracció
Mòdul 4: Programació Orientada a Objectes Avançada
Mòdul 5: Estructures de Dades i Col·leccions
Mòdul 6: Gestió d'Excepcions
Mòdul 7: Entrada/Sortida de Fitxers
- Lectura de Fitxers
- Escriptura de Fitxers
- Fluxos de Fitxers
- BufferedReader i BufferedWriter
- Serialització
Mòdul 8: Multithreading i Concurrència
- Introducció al Multithreading
- Creació de Fils
- Cicle de Vida dels Fils
- Sincronització
- Utilitats de Concurrència
Mòdul 9: Xarxes
- Introducció a les Xarxes
- Sockets
- ServerSocket
- DatagramSocket i DatagramPacket
- URL i HttpURLConnection