Matrizes em Java

⚡ Resumo Inteligente

Matrizes em Java São contêineres de tamanho fixo, baseados em índices, que armazenam elementos de um tipo de dados em memória contígua, proporcionando acesso em tempo constante, verificação de limites integrada e um campo de comprimento, o que os torna a base da maioria das coleções da biblioteca padrão.

  • 📦 Tamanho fixo: Um array armazena um número fixo de elementos de um único tipo.
  • 🔢 Índice baseado em zero: Os elementos variam de 0 até o comprimento menos um.
  • 🧩 Dois tipos: Java Possui matrizes unidimensionais e multidimensionais.
  • 🛠️ Três etapas: Cada array é declarado e construído com newe inicializado.
  • 🛡️ Verificação de limites: A JVM lança uma exceção. ArrayIndexOutOfBoundsException passou pelo último slot.
  • ↩️ Por referência: As alterações feitas nos elementos dentro de um método permanecem para o método que o chamou.
  • 📏 Campo de comprimento: Cada matriz expõe length para uma iteração segura.

Matrizes em Java

O que é uma Java Variedade?

A Java ordem É uma estrutura de tamanho fixo que armazena elementos de um mesmo tipo de dado em memória contígua. Cada elemento é acessado por um índice baseado em zero, portanto, o primeiro elemento está localizado em 0 e o último em length - 1Os arrays herdam de Object e implementar Serializable e Cloneablee pode conter primitivas ou referências a objetos.

Os arrays substituem longas sequências de variáveis ​​numeradas. Considere seis inteiros independentes:

x0 = 0;
x1 = 1;
x2 = 2;
x3 = 3;
x4 = 4;
x5 = 5;

Os mesmos seis valores residem em um único array de comprimento seis:

x[0] = 0;
x[1] = 1;
x[2] = 2;
x[3] = 3;
x[4] = 4;
x[5] = 5;

A laço A variável pode controlar o índice entre parênteses, de forma que três linhas processem cada elemento em vez de seis cópias:

for (int count = 0; count < 5; count++) {
    System.out.println(x[count]);
}

Tipos de Array em Java

Java Os arrays podem ter dois formatos:

  1. Matriz unidimensional: Uma lista simples de elementos.
  2. Matriz multidimensional: Uma matriz de matrizes, usada para grades e matrizes.

Variáveis ​​de matriz: Declaração, construção e inicialização

Usar um array é um três passo processo: declarar, construir com new, então inicialize.

1) Declare o Array

Sintaxe:

<elementType>[] <arrayName>;

or (o formato C mais antigo, ainda válido):

<elementType> <arrayName>[];

Exemplo:

int[] intArray;   // canonical form: brackets on the type
int intArray2[];  // legacy C-style form, discouraged in new code

2) Construir o Array

Sintaxe:

arrayName = new dataType[size];

Exemplo:

intArray = new int[10]; // defines that intArray will store 10 integer values

Declaração e construção combinadas:

int[] intArray = new int[10];

3) Inicialize o array

intArray[0] = 1; // assigns 1 to the first element (index 0)
intArray[1] = 2; // assigns 2 to the second element (index 1)

Declare e inicialize em uma única etapa usando um literal de matriz:

int[] intArray = {1, 2, 3, 4};
// initialises an integer array of length 4 where the first element is 1,
// the second element is 2, and so on.

Primeiro programa de matriz em Java

Passo 1) Copie o seguinte código para um editor:

class ArrayDemo {
    public static void main(String args[]) {
        int array[] = new int[7];

        for (int count = 0; count < 7; count++) {
            array[count] = count + 1;
        }

        for (int count = 0; count < 7; count++) {
            System.out.println("array[" + count + "] = " + array[count]);
        }

        // System.out.println("Length of Array  =  " + array.length);
        // array[8] = 10;
    }
}

Passo 2) Salve, compile e execute o código. Observe o resultado.

Resultado esperado:

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

Passo 3) If x é uma referência de matriz, x.length Retorna a contagem de slots. Descomente a primeira linha comentada e execute novamente:

Length of Array  =  7

Passo 4) Ao contrário de C, Java Verifica os limites de cada acesso à matriz. Remova o comentário da segunda linha comentada e execute novamente:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

Passo 5) A JVM lança uma exceção. ArrayIndexOutOfBoundsExceptionEm C, o mesmo acesso retornaria lixo da memória adjacente em vez de falhar.

Java Array: Passagem por Referência

Os arrays são passados ​​para os métodos por referência. O método recebe uma cópia da referência, portanto, as alterações nos elementos feitas dentro do método são visíveis para quem o chamou.

Exemplo: arrays são passados ​​por referência.

Passo 1) Copie o seguinte código para um editor:

class ArrayDemo {
    public static void passByReference(String a[]) {
        a[0] = "Changed";
    }

    public static void main(String args[]) {
        String[] b = {"Apple", "Mango", "Orange"};
        System.out.println("Before Function Call    " + b[0]);
        ArrayDemo.passByReference(b);
        System.out.println("After Function Call    " + b[0]);
    }
}

Passo 2) Salve, compile e execute o código. Observe o resultado.

Resultado esperado:

Before Function Call    Apple
After Function Call    Changed

Matrizes multidimensionais em Java

Matrizes multidimensionais são matrizes de matrizes. Adicione um novo conjunto de colchetes para cada dimensão. Para criar uma grade de inteiros bidimensional com quatro linhas e cinco colunas:

int[][] twoD = new int[4][5];

Você só precisa definir o tamanho da primeira dimensão (a da esquerda) antecipadamente. As dimensões restantes podem ser alocadas separadamente, e cada linha pode ter seu próprio comprimento, tornando-se... Java Matrizes 2D verdadeiras matrizes irregulares.

Exemplo:

public class Guru99 {
    public static void main(String[] args) {
        // Create a 2-dimensional array with 4 rows and 4 columns.
        int[][] twoD = new int[4][4];

        // Assign three elements to it.
        twoD[0][0] = 1;
        twoD[1][1] = 2;
        twoD[3][2] = 3;

        System.out.print(twoD[0][0] + " ");
    }
}

Resultado esperado:

1

Perguntas Frequentes

A Java Um array é um contêiner de tamanho fixo que armazena elementos de um único tipo de dado. Cada elemento é acessado por um índice baseado em zero, e todo array expõe um campo de comprimento com a quantidade de elementos.

Declare com int[] arr, construa com new int[size], e então atribua pelo índice. Para fazer tudo isso em uma única linha, use um literal como int[] arr = {1, 2, 3, 4}.

Java Suporta arrays unidimensionais e multidimensionais. Um array unidimensional é uma lista simples, enquanto um array multidimensional é um array de arrays usado para tabelas, grades e matrizes.

Use o campo de comprimento, por exemplo, `arr.length`. Ele retorna a quantidade de posições e funciona para qualquer tipo de array. Ao contrário de `String`, os arrays expõem o comprimento como um campo, não como uma chamada de método.

A JVM verifica os limites de cada acesso a um array. Ler ou escrever em um índice menor que zero ou igual ou maior que o comprimento lança uma exceção ArrayIndexOutOfBoundsException, prevenindo os bugs de corrupção de memória que afetam C e C++.

Java Os argumentos são passados ​​por valor, mas para arrays esse valor é uma cópia da referência. O método atua no mesmo array subjacente, portanto, as alterações de elementos dentro do método são visíveis para quem o chamou.

Os assistentes de código de aprendizado de máquina reconhecem o padrão declarar-construir-inicializar e completam literais ou loops. Eles também sinalizam erros comuns de "deslocamento de um" que lançariam uma exceção ArrayIndexOutOfBoundsException em tempo de execução.

Sim. O GitHub Copilot cria declarações de arrays, loops, chamadas a Arrays.sort e percursos em matrizes 2D a partir de um comentário em linguagem natural. RevVeja os limites gerados antes de executar o teste com os dados de produção.

Resuma esta postagem com: