aulajava04 array
TRANSCRIPT
-
8/14/2019 AulaJava04 Array
1/12
Java Bsico
Prof. Jucimar Souza
ArrayArray
01 Instroduo
Array uma estrutura de dados Todos os itens tem o mesmo tipo Tem o seu tamanho definido no momento da criao Grupo continuo de alocao de memria
Tambm chamado de Vetor ou Matriz Unidimencional
-
8/14/2019 AulaJava04 Array
2/12
-45
6
0
72
1543
-89
0
62
-3
1
6453
78
c[ 1 ]
c[ 2 ]
c[ 4 ]
c[ 3 ]
c[ 5 ]
c[ 6 ]
c[ 7 ]
c[ 8 ]
c[ 9 ]
c[ 10 ]
c[ 11 ]
c[ 0 ]Nome do array (Noteque todos os elementos
do vetor tem o mesmonome, c)
Nmero da posio (indice) do elemento do array c
02 - Array Examinando o vetor c
c o nome do vetor c.length retorna o comprimento do vetor
(nmero de posies) c tem 12 elementos (c[0],c[1],...,c[11])
O valor de c[0] -45 Os colchetes [] esto no nivel mais alto de
precedncia em Java
-
8/14/2019 AulaJava04 Array
3/12
03 Declarando e Alocando Vetores
Declarando e alocando um vetorVetores so objetos que ocupam memriaAlocado dinamicamente com o operador new
int c[] = new int[ 12 ];
equivalente a:
int c[]; // declarao do vetorc = new int[ 12 ]; // aloca o vetor
Podemos alocar um vetor de objetos assimString b[] = new String[ 100 ];
04 Usando vetoresAcessando o vetor
meuVetor[1]=5;
Inicializando valores no vetor: int meuVetor[] ={5,3,4,25,12,10,8,15,16};
Acumulando valores: for (int i=0;i
-
8/14/2019 AulaJava04 Array
4/12
05 Arrays de Referncias
comum ouvirmos array de objetos. Quando criamos uma array de alguma
classe, ela possui referncias. O objeto, como sempre, est na memria
principal e, na sua array, s ficamguardadas as referncias (endereos).
Exemplo: Conta[] minhasContas;
minhasContas = new Conta[10]; Quantas contas foram criadas aqui?
05 Arrays de Referncias (Cont) Na verdade, nenhuma. Foram criados 10 espaos que voc pode
utilizar para guardar uma referncia a umaConta. Por enquanto, eles se referenciampara lugar nenhum (null).
-
8/14/2019 AulaJava04 Array
5/12
05 Arrays de Referncias (Cont)
Voc pode popular sua array assim:
Conta contaNova = new Conta(); contaNova.saldo = 1000.0; minhasContas[0] = contaNova;
Ou voc pode fazer isso diretamente:
minhasContas[1] = new Conta(); minhasContas[1].saldo = 3200.0;
05 Arrays de Referncias (Cont)
Uma array de tipos primitivos guarda valores, uma arrayde objetos guarda referncias.
-
8/14/2019 AulaJava04 Array
6/12
06 Passagem de Parmetros
Existem duas maneiras de passarparmetros para um mtodo Por valor
Copia do valor do argumento passado na chamadodo mtodo;
Em Java todos os tipos primitivos so passados porvalor
Por Referncia O chamador d ao mtodo chamado acesso direto
aos dados O mtodo chamado pode manipular estes dados
06 Passagem de Parmetros Por Referencia (Continuao)
mais rpido que a passagem por valor Em Java, todo objeto passado por referncia
Em Java, Array so objetos Por este motivo a passagem de parmetros quando
usado um vetor (array) por referncia
-
8/14/2019 AulaJava04 Array
7/12
-
8/14/2019 AulaJava04 Array
8/12
// multiplica cada elemento por 2
static void mudaVetor( int array2[] )
{for ( int i = 0; i < array2.length; i++ )
array2[ i ] *= 2;
}
// multiplica o argumento por 2
static void mudaElemento( int elemento )
{
elemento *= 2;
}
} //fim da classe
07 Arrays Multidimencionais (Matrizes) Multiplas dimenses
Tabela com linhas e colunas Declarando um array com duas dimenses b[2][2]
int b[][] = { {1,2},{3,4} }; 1 e 2 foram inicializados em b[0][0] e b[0][1] 3 e 4 foram inicializados em b[1][0] e b[1][1]
int b[][] = { {1,2},{3,4,5} }; A linha 0 com 1 e 2 A linha 1 com 3 , 4 e 5
-
8/14/2019 AulaJava04 Array
9/12
07 Arrays Multidimencionais(Matrizes) - (cont)
Alocando um array de multiplas dimenses Pode-se alocar uma matriz 3 x 4 assim
int b[][];b = new int [3][4];
As linhas podem ter numeros diferente decolunasint b[][];
b = new int[ 2 ][ ]; // aloca 2 linhas
b[ 0 ] = new int[ 5 ]; // aloca 5 col. na linha 0b[ 1 ] = new int[ 3 ]; // aloca 3 col. na linha 1
07 Arrays Multidimencionais(Matrizes) - (cont)
a[ 0 ][ 0 ]
a[ 1 ][ 0 ]
a[ 2 ][ 0 ]
a[ 0 ][ 1 ]
a[ 1 ][ 1 ]
a[ 2 ][ 1 ]
a[ 0 ][ 2 ]
a[ 1 ][ 2 ]
a[ 2 ][ 2 ]
a[ 0 ][ 3 ]
a[ 1 ][ 3 ]
a[ 2 ][ 3 ]
Linha 0
Linha 2
Linha 1
Coluna 0 Coluna 1 Coluna 2 Coluna 3
Indice da coluna
Indice da Linha
Nome do Array
-
8/14/2019 AulaJava04 Array
10/12
07 Arrays Multidimencionais(Matrizes) - (cont)
Array de objetos de duas dimenses
07 Arrays Multidimencionais(Matrizes) - (cont)
Array de objetos com duas dimenses onde as linhas temtamanhos direfentes.
-
8/14/2019 AulaJava04 Array
11/12
08 Estrutura for aprimorada (enhanced-for)
for ( parmetro : nomeDoVetor)instruo
Parametro divido em duas partes o tipo eidentificador.
Ex.: for (int i: meuVetor)
System.out.println(i);
09 Percorrendo vetores no Java 5class VetoresJava5{
public static void main(String args[]) {int[] idades = new int[10];for (int i = 0; i < 10; i++) {
idades[i] = i * 10;}
for (int x : idades) {System.out.println(x);
}}}
E agora nem precisamos mais do length para percorrer matrizes que noconhecemos seu tamanho:
void imprimeArray(int[] array) {for (int x : array) {
System.out.println(x);}
}
-
8/14/2019 AulaJava04 Array
12/12
Exercicio
Utilize a classe ContaCorrente que fizemosno curso anterior. Instancie um vetor com10 posies onde em cada posio vaiapontar para uma instancia da classeContaCorrente.
Atribua valores diretamente ou viadigitao, e imprima os dados utilizando umenhanced-for.