3. Matrizes
Em algumas situações é preciso guardar
diversas informações de um mesmo tipo no
Java.
Imagine ter que guardar informações como os
titulos de filmes de uma coleção de DVD, ou os
nomes de ouvintes que estão na platéia de um
teatro.
Até o momento deveriamos criar uma váriavel
específica para guardar cada umas destas
informações, uma para cada pessoa, uma para
cada título.
4. Matrizes
Para evitar a manutenção de todas estas
variáveis, as linguagens de programação
oferecem um recurso chamado de Vetores
ou Matrizes.
Onde é criado apenas uma variável
contendo diversas células dentro dela, e
as informações são gravadas ou lidas
dessas células
6. Vetor
No caso dos títulos de DVDs podemos criar uma
única variável chamada dvds que seria um
vetor com 7 células suficientes para conter
todos os títulos na minha coleção
GreenMile
Payitforward
A.I.
TheLastSamurai
BraveHeart
PatchAdams
0 1 5 6 7432
String dvd1 = “Green mile”;
String dvd2 = “Pay it forward”;
String dvd3 = “A.I.”;
String dvd4 = “The Last Samurai”;
String dvd5 = “Brave Heart”;
String dvd6 = “Patch Adams”;
Uma única variável dvds[]
7. Matriz
No caso da platéia do teatro, podemos criar
uma única variável do tipo matriz com duas
dimensões para guardar os nomes de cada
indivíduo.
John
<Available>
Bart
Hommer
William
Paul
JessicaAlfred
Sara
<Available>
Richard
Maicon
<Available>
Antonio
Silvana
0 1 2 3 4
0
1
2
-- Colunas --
----Linhas----
0 1 2 3 4
0
1
2
---- Colunas ----
----Linhas----
8. Matrizes e Vetores
O acesso a cada uma dessas células é feito pelo índice.
Por exemplo no caso do título para gravar o nome do
primeiro e do segundo título de DVD na variável dvds
usamos a seguinte sintaxe :
dvds[0] = “Green Mile”;
dvds[1] = “Pay it forward”;
E se quisermos acessar a informação posteriormente
para imprimir na tela, basta chamar a variável com o
índice desejado.
System.out.println( dvds[1] ); // Pay it forward
System.out.println( dvds[3] ); // The Last Samurai
System.out.println( dvds[5] ); // null
9. Sintaxe de Declaração de Vetores e Matrizes
<tipo> [ ] <var1>[, <var2> ..<varn>];
Ex: int [] a, b;
Ex: int [] [] c, d;
<tipo> <var1>[];
Ex: int a[], b;
Ex: int c, d[][];
Ex: String j[];
<tipo> <var1>[] = { <elementos>};
Ex: int a[] = { 1, 2, 3};
Ex: int d[][] = { {1, 2, 3}, { 9, 7, 8}, { 2, 3, 5} };
Matriz e Vetores
Declaração
seguida de
inicialização
10. Sintaxe de Inicialização de Vetores e
Matrizes
<var> = new <tipo da variável | classe> [ tamanho ];
Ex: a = new int [10];
Ex: d = new int [10][5];
Ex: j = new String [7];
Matriz e Vetores
11. Memória do Computador usada
pelo Java
dvds[]
Memória do Computador usada
pelo Java
Declaração
String dvds[];
Inicialização
dvds = new String[8];
0 1 5 6 7432
dvds[8]
A declaração serve para reservar o espaço na memória do Java.
Quando o vetor ou matriz é inicializado o java divide este espaço da
memória em celulas
Matriz e Vetores
12. Exemplo
Para preencher um vetor com o exemplo
dos títulos de DVD o programa ficaria
como o código abaixo :
String [] dvds = new String[8];
dvds[0] = “Green mile”;
dvds[1] =“Pay it forward”;
dvds[2] =“A.I.”;
dvds[3] =“The Last Samurai”;
dvds[4] =“Brave Heart”;
dvds[6] =“Patch Adams”;
13. Exercício
Faça um programa que solicite 20 números ao
usuário, armazene-os em um vetor e depois
imprima na tela os vinte números juntamente
com a soma e sua média aritmética
Desafio : Modifique o programa anterior para
mostrar os números na tela de forma ordenada.
14. Exercício
Faça um programa que armazene um tabuleiro
de Sudoku e preencha este tabuleiro com 10
números aleatoriamente.
Faça também uma rotina para que o usuário
possa colocar novos números neste tabuleiro,
indicando qual linha, coluna e o número a ser
colocado.
Desafio : Modifique o programa anterior para
que ele valide se o número pode ser colocado
naquela posição conforme as regras do Sudoku