Escolar Documentos
Profissional Documentos
Cultura Documentos
Versão 2.0
O que é um array?
Array
• Um array é uma coleção ordenada de valores
• Os valores podem ser primitivos, objetos ou
outros arrays
• Todos os valores de um array devem ser do
mesmo tipo
• Um array é um objeto!
Array
• São armazenados em uma localização de memória
contínua
• Cada localização pode ser referenciada
individualmente através do seu índice
• Isto significa que, por exemplo, é possível
armazenar 5 valores do tipo int em um array sem
precisar declarar 5 variáveis
4
Exemplo Matriz Unidimencional
• Uma declaração para array em Java é:
5
Inicializando Matrizes
• Quando declaramos um array ele será
inicializado, porém seu conteúdo permanecerá
indeterminado até definirmos um
6
Array Exemplos
byte b;
byte[] arrayOfBytes;
byte[][] arrayOfArrayOfBytes;
7
Criando um array
• Arrays não precisam ser inicializados no ato de sua
criação
– Precisa especificar o tamanho
9
Tamanho do array
• Acessando o tamanho de um array
– Através do atributo length
– length é um atributo constante (final) e
public de todo objeto array
10
Visualizando um array
int[] values = new int[100];
for(int i = 0; i < values.length; i++){
values[i] = i*2;
}
11
Exercício
• Faça uma função que calcule o somatório de
todos os elementos da matriz
12
Mais Exercícios
• Dada uma sequencia de n números
armazenados em uma matriz, imprima-os na
ordem inversa a da leitura
14
Mais Exercícios
• Fazer um programa ler um vetor de inteiros e
positivos e imprimir quantas vezes aparece o
número 1, 3 e 4, nesta ordem. O vetor terá no
máximo 30 posições.
16
Matrizes Multidimencionais
• Podem ser descritos como matriz de matrizes
• Uma matriz bidimencional pode ser imaginada
como uma tabela de elementos
int[][] jimmy = new int[3][5];
18
Exemplo
jimmy[1][3];
19
Matrizes Multidimencionais
• Matrizes não são limitadas a dois índices
– Exemplo, duas dimensões
• Eles podem conter quantos índices forem
necessário
• Cuidado porque a memória pode ser consumida
char[][][][][] century = new char [100][365][24][60][60];
//Consome 3Gb da memory
20
Inicializando Matrizes Multid.
char PT = ‘*’;
char v[][] = {{PT,PT,PT},{PT,PT,PT},{PT,PT,PT}};
21
Inicializando Matrizes Multid.
{{7,9,3,2},{4,6,8,3}},
{{7,2,6,3},{0,1,9,4}}
};
22
Mais detalhes
• Matrizes multidimensionais são apenas uma
abstração para programadores
• É possível obter o mesmo resultado com uma
matriz simples
23
Array bidimensional, exemplo
int[][] pontos = { {10,10},
{10,20},
{20,10},
{20,20}};
// vai compilar?
26
Arrays multimensionais não retangulares
27
Exercício
• Dado dois vetores, A (5 elementos) e B (8
elementos), faça um programa que imprima
todos os elementos comuns aos dois vetores.
28
Mais Exercícios
• Suponha um vetor A com 10 elementos e outro
vetor B com 10 elementos. Faça um programa
em C++ que calcule o produto escalar P de A por
B. (Isto é, P = A[0]*B[0] + A[1]*B[1] +
... A[N]*B[N]).
29
Arrays como argumentos
• Arrays podem ser passados como parâmetro
para funções
• Em Java não é possível passar o bloco de
memória inteiro
• É possível passar o endereço da matriz
void procedure(int[] arg) //parâmetro
int[] myarray = new int[40]; //declarando a matriz
procedure(myarray);//chamada da função
30
Arrays como argumentos
• O nome de um array desacompanhado de
colchetes representa o endereço de memória
onde o array foi armazenado
• O nome de uma variável simples representa o
valor nela contido
• O nome de um array representa seu endereço de
memória
32
Passagem por referência
• As matrizes são consideradas um tipo de dado
bastante grande
• Em Java existe apenas uma única cópia do array
na memória
• Sendo assim, os valores não são passados os
valores contidos no array, somente seu
endereço de memória
33
Passagem por referência
• O que ocorre quando o endereço de um array é
passado para uma função como argumento?
• A função usa o endereço para acessar os
elementos do próprio array
• As alterações que forem feitas no array pela
função afetarão o array original
34
Exercício
• Fazer um programa para ler 20 notas (inteiros e
positivos) e calcular a média. Imprimir também
o maior.
• Utilize a matriz na passagem de parâmetro para
função de calculo
36
Sequencia de caracteres
• O uso mais comum de array unidimensionais é
como string de caracteres
• Em Java, uma String é definida como um array
de caracteres que é terminada por um nulo
• Um nulo é especificado como ‘\0’ e geralmente
é zero
37
Exemplo
char [] jenny = new char[20];
38
Exercício
39
Exercício 1/3
41
Exercício 2/3
42
Exercício 3/3
43
Coleção de contas com array
• Crie uma classe que guarda as contas num array de contas
– Repositório ou conjunto de contas
– Atributos: Array de conta e Índice
• Crie o construtor
• Crie os métodos para inserção, procura e remoção dos
objetos
• Crie os métodos para creditar e debitar valores das contas
do array
43
44
Classe principal
45