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:

int[] myArray;

Inicialització

Hi ha diverses maneres d'inicialitzar un array:

  1. Inicialització en el moment de la declaració:
int[] myArray = new int[5]; // Crea un array de 5 elements
  1. Inicialització amb valors literals:
int[] myArray = {1, 2, 3, 4, 5}; // Crea un array amb els valors especificats
  1. Inicialització després de la declaració:
int[] myArray;
myArray = new int[5];

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

int[] myArray = {1, 2, 3, 4, 5};
for (int element : myArray) {
    System.out.println(element);
}

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ó

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

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

Mòdul 2: Flux de Control

Mòdul 3: Programació Orientada a Objectes

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

Mòdul 8: Multithreading i Concurrència

Mòdul 9: Xarxes

Mòdul 10: Temes Avançats

Mòdul 11: Frameworks i Llibreries de Java

Mòdul 12: Construcció d'Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats