Matrizes em Java
O que é o Java Matrizes?
Java Ordem é um tipo muito comum de estrutura de dados que contém todos os valores de dados do mesmo tipo de dados. Os itens de dados colocados na matriz são chamados de elementos e o primeiro elemento da matriz começa com índice zero. Os arrays herdam a classe do objeto e implementam as interfaces serializáveis e clonáveis. Podemos armazenar valores ou objetos primitivos em um array.
Em palavras simples, é uma construção de programação que ajuda a substituir esta
x0=0; x1=1; x2=2; x3=3; x4=4; x5=5;
com isso …
x[0]=0; x[1]=1; x[2]=2; x[3]=3; x[4]=4; x[5]=5;
como isso ajuda é que uma variável pode fazer referência ao índice (o número entre colchetes []) para facilitar laço.
for(count=0; count<5; count++) { System.out.println(x[count]); }
Tipos de Array em Java
Existem dois tipos de array.
- Matriz unidimensional
- Matriz Multidimensional
Variáveis de matriz
Usar um array em seu programa é uma Processo de 3 etapas -
1) Declarando seu array
2) Construindo sua matriz
3) Inicialize seu array
1) Declarando seu Array
Sintaxe
<elementType>[] <arrayName>;
ou
<elementType> <arrayName>[];
Exemplo:
int intArray[]; // Defines that intArray is an ARRAY variable which will store integer values int []intArray;
2) Construindo uma Matriz
arrayname = new dataType[]
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 um array
intArray[0]=1; // Assigns an integer value 1 to the first element 0 of the array intArray[1]=2; // Assigns an integer value 2 to the second element 1 of the array
Declarando e inicializando um Array
[] = {};Exemplo:
int intArray[] = {1, 2, 3, 4}; // Initilializes an integer array of length 4 where the first element is 1 , second element is 2 and so on.
Primeiro programa de matriz
Passo 1) Copie o código a seguir em 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 a saída
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) Se x é uma referência a um array, x.comprimento lhe dará o comprimento da matriz.
Remova o comentário da linha nº 10. Salve, compile e execute o código. Observe a saída
Length of Array = 7
Passo 4) Ao contrário de C, Java verifica o limite de um array ao acessar um elemento nele. Java não permitirá que o programador exceda seu limite.
Remova o comentário da linha nº 11. Salve, compile e execute o código. Observe a saída
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 at ArrayDemo.main(ArrayDemo.java:11) Command exited with non-zero status 1
Passo 5) ArrayIndexOutOfBoundsException é lançada. No caso de C, o mesmo código teria mostrado algum valor lixo.
Java Matriz: Passa por referência
Arrays são passados para funções por referência ou como um ponteiro para
o original. Isso significa que qualquer coisa que você fizer no Array dentro do
função afeta o original.
Exemplo: Para entender Array são passados por referência
Passo 1) Copie o seguinte código em 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 a saída
Resultado esperado:
Before Function Call Apple After Function Call Changed
Matrizes multidimensionais
Matrizes multidimensionais são, na verdade, matrizes de matrizes.
Para declarar um array multidimensional variável, especifique cada índice adicional usando outro conjunto de colchetes.
Ex: int twoD[ ][ ] = new int[4][5] ;
Ao alocar memória para uma matriz multidimensional, você só precisa especificar a memória para a primeira dimensão (mais à esquerda).
Você pode alocar as dimensões restantes separadamente.
In Java, o comprimento da matriz de cada matriz em uma matriz multidimensional está sob seu controle.
Exemplo
public class Guru99 { public static void main(String[] args) { // Create 2-dimensional array. int[][] twoD = new int[4][4]; // Assign three elements in it. twoD[0][0] = 1; twoD[1][1] = 2; twoD[3][2] = 3; System.out.print(twoD[0][0] + " "); } }
Resultado esperado:
1