Vous êtes sur la page 1sur 12

Java Básico

Array
Prof. Jucimar Souza

01 – Instrodução

 Array
 É uma estrutura de dados
 Todos os itens tem o mesmo tipo
 Tem o seu tamanho definido no momento da criação
 Grupo continuo de alocação de memória
 Também chamado de Vetor ou Matriz Unidimencional

1
Nome do array (Note c[ 0 ] -45
que todos os elementos c[ 1 ] 6
do vetor tem o mesmo
nome, c) c[ 2 ] 0
c[ 3 ] 72
c[ 4 ] 1543
c[ 5 ] -89
c[ 6 ] 0
c[ 7 ] 62

c[ 8 ] -3

Número da posição (indice c[ 9 ] 1


) do elemento do array c 6453
c[ 10 ]
c[ 11 ] 78

02 - Array

 Examinando o vetor c
 c é o nome do vetor
 c.length retorna o comprimento do vetor
(número de posições)
 c tem 12 elementos (c[0],c[1],...,c[11])
 O valor de c[0] é -45
 Os colchetes [] estão no nivel mais alto de
precedência em Java

2
03 – Declarando e Alocando Vetores

 Declarando e alocando um vetor


 Vetores são objetos que ocupam memória
 Alocado dinamicamente com o operador new
int c[] = new int[ 12 ];
É equivalente a:
int c[]; // declaração do vetor
c = new int[ 12 ]; // aloca o vetor

Podemos alocar um vetor de objetos assim


String b[] = new String[ 100 ];

04 –Usando vetores

 Acessando 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<meuVetor.length;i++)
total+=meuVetor[i];

3
05 – Arrays de Referências

 É comum ouvirmos “array de objetos”.


 Quando criamos uma array de alguma
classe, ela possui referências.
 O objeto, como sempre, está na memória
principal e, na sua array, só ficam
guardadas as referências (endereços).
 Exemplo:
 Conta[] minhasContas;
 minhasContas = new Conta[10];
 Quantas contas foram criadas aqui?

05 – Arrays de Referências (Cont)

 Na verdade, nenhuma.
 Foram criados 10 espaços que você pode
utilizar para guardar uma referência a uma
Conta. Por enquanto, eles se referenciam
para lugar nenhum (null).

4
05 – Arrays de Referências (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 Referências (Cont)

Uma array de tipos primitivos guarda valores, uma array


de objetos guarda referências.

5
06 –Passagem de Parâmetros

 Existem duas maneiras de passar


parâmetros para um método
 Por valor
 Copia do valor do argumento é passado na chamado
do método;
 Em Java todos os tipos primitivos são passados por
valor
 Por Referência
 O chamador dá ao método chamado acesso direto
aos dados
 O método chamado pode manipular estes dados

06 –Passagem de Parâmetros

 Por Referencia (Continuação)


 É mais rápido que a passagem por valor
 Em Java, todo objeto é passado por referência
 Em Java, Array são objetos
 Por este motivo a passagem de parâmetros quando

usado um vetor (array) é por referência

6
06 – Passando Arrays para um método

 Para passar um argumento array para um


método:
 Especifique o nome do array sem colchetes
 Vetor temperatura é declarado como
 int temperatura = new int [24]
 A chamada do método
 mudaVetor(temperatura);
 Passa o vetor temperatura para o método mudaValor

class PassaVetor{

public static void main(String args[])


{
int array[] = { 1, 2, 3, 4, 5 };

System.out.println("Efeito da passagem de parametros por referencia :\n" +


"Os valores originais do vetor são :\n");

for ( int conta = 0; conta < array.length; conta++ )


System.out.print(" " + array[ conta ]);

mudaVetor( array ); // passagem de parametros por referencia

System.out.println("\n\nOs valores modificados pelo metodo são :\n");

// Dados modificados
for ( int conta = 0; conta < array.length; conta++ )
System.out.print(" " + array[ conta ]);

System.out.println("\n\nEfeito da passagem por valor de " +


"um elemento do vetor :\n" +
"a[3] antes do metodo mudaElemento: " + array[ 3 ]);

// chamando o metodo
mudaElemento( array[ 3 ] );

System.out.println("\na[3] depois do mudaElemento: " + array[ 3 ]);


} // fim do main

7
// 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 dimensões
 Tabela com linhas e colunas
 Declarando um array com duas dimensões 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
07 – Arrays Multidimencionais(Matrizes) - (cont)

 Alocando um array de multiplas dimensões


 Pode-se alocar uma matriz 3 x 4 assim
int b[][];
b = new int [3][4];
 As linhas podem ter numeros diferente de
colunas
int b[][];
b = new int[ 2 ][ ]; // aloca 2 linhas
b[ 0 ] = new int[ 5 ]; // aloca 5 col. na linha 0
b[ 1 ] = new int[ 3 ]; // aloca 3 col. na linha 1

07 – Arrays Multidimencionais(Matrizes) - (cont)

Coluna 0 Coluna 1 Coluna 2 Coluna 3

Linha 0 a[ 0 ][ 0 ] a[ 0 ][ 1 ] a[ 0 ][ 2 ] a[ 0 ][ 3 ]
Linha 1 a[ 1 ][ 0 ] a[ 1 ][ 1 ] a[ 1 ][ 2 ] a[ 1 ][ 3 ]
Linha 2 a[ 2 ][ 0 ] a[ 2 ][ 1 ] a[ 2 ][ 2 ] a[ 2 ][ 3 ]

Indice da coluna

Indice da Linha

Nome do Array

9
07 – Arrays Multidimencionais(Matrizes) - (cont)

Array de objetos de duas dimensões

07 – Arrays Multidimencionais(Matrizes) - (cont)

Array de objetos com duas dimensões onde as linhas tem


tamanhos direfentes.

10
08 – Estrutura for aprimorada (enhanced-for)

 for ( parâmetro : nomeDoVetor)


instrução

Parametro é divido em duas partes o tipo e


identificador.

Ex.: for (int i: meuVetor)


System.out.println(i);

09 – Percorrendo vetores no Java 5


class 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 não
conhecemos seu tamanho:
void imprimeArray(int[] array) {
for (int x : array) {
System.out.println(x);
}
}

11
Exercicio

 Utilize a classe ContaCorrente que fizemos


no curso anterior. Instancie um vetor com
10 posições onde em cada posição vai
apontar para uma instancia da classe
ContaCorrente.
 Atribua valores diretamente ou via
digitação, e imprima os dados utilizando um
enhanced-for.

12

Vous aimerez peut-être aussi