0% acharam este documento útil (0 voto)
91 visualizações

POO09 - Arrays (POO - Java)

1) Arrays são estruturas de dados que armazenam uma coleção de elementos do mesmo tipo em posições sequenciais. 2) Em Java, arrays são alocados dinamicamente e podem ter uma ou mais dimensões. 3) Os elementos de um array são acessados via seus índices, que variam de 0 até o tamanho do array - 1.

Enviado por

Silvano Oliveira
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
91 visualizações

POO09 - Arrays (POO - Java)

1) Arrays são estruturas de dados que armazenam uma coleção de elementos do mesmo tipo em posições sequenciais. 2) Em Java, arrays são alocados dinamicamente e podem ter uma ou mais dimensões. 3) Os elementos de um array são acessados via seus índices, que variam de 0 até o tamanho do array - 1.

Enviado por

Silvano Oliveira
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 25

Arrays (POO – Java)

[email protected]
Arrays
Um Array é uma estrutura de dados que
armazena uma coleção sequencial de tamanho
fixo de elementos do mesmo tipo.
Os arrays são usados para armazenar uma
coleção de dados, porém é interessante pensar
neles como sendo coleções de variáveis do
mesmo tipo.

Prof Silvano Oliveira (POO - Java) 2


Características dos Arrays em Java
 Em Java, todos os arrays são alocados dinamicamente
 Uma variável array em Java pode ser declarada como qualquer outra variável,
acrescentando colchetes [] após o tipo de dados declarado.
 Arrays são objetos em Java. Assim, podemos descobrir seu tamanho usando o
atributo length do objeto.
 Os elementos em um array são indexados a partir de zero.
 Um array pode ter uma ou mais dimensões
 O tamanho de um array sempre deve ser um valor int, e nunca um long, short ou
byte.
 Podemos usar arrays em Java como um campo estático, variável local ou ainda
como parâmetros em métodos.
 Um array pode conter tipos de dados primitivos ou ainda objetos de uma classe

Prof Silvano Oliveira (POO - Java) 3


Criando um array unidimensional: Vetor

tipo nomeArray[ ];
ou
tipo[ ] nomeArray;

O tipo determina qual será o tipo de dados


de todos os elementos que serão
armazenados nas posições do array
(estrutura homogênea).

Prof Silvano Oliveira (POO - Java) 4


Exemplo de declaração de array:

double[ ] salarios;
double salarios[ ]; // Ambas as formas são válidas.

Declaramos um array de nome salarios e


tipo double em um programa.
Porém, neste ponto, nenhum array ainda existe
de fato.

Prof Silvano Oliveira (POO - Java) 5


Criando um array unidimensional: Vetor
Para que essa variável seja ligada ao array real,
será necessário alocar um array usando o
operador new, e atribuindo-o à variável salário.
Desta forma, quando um array é declarado,
apenas uma referência de array é realmente
criada. Para efetivamente alocar espaço na
memória para o array, devemos proceder desta
forma:
nomeArray = new tipoDado[tamanho];

Prof Silvano Oliveira (POO - Java) 6


Criando um array unidimensional: Vetor

Criar um array em Java é um processo em duas


etapas:
Declaramos uma variável do tipo desejado para o array,
e então
Alocamos memória para efetivamente armazenar o
array, atribuindo-a à variável criada.
Exemplo:
double[ ] salarios; // Declarar o array
salarios = new double[50]; // Alocar memória para o array

Prof Silvano Oliveira (POO - Java) 7


Criando um array unidimensional: Vetor

Podemos ainda declarar a variável de referência,


criar o array, e atribuir a referência do array à
variável de uma só vez, como segue:
tipoDado[ ] variávelReferência = new tipoDado[tamanhoArray];

Em nosso exemplo:

double[ ] salarios = new double[50];

Prof Silvano Oliveira (POO - Java) 8


Criando um array unidimensional: Vetor

Os elementos do array alocados com o


operador new são automaticamente
inicializados com valores-padrão:
zero para tipos numéricos
falso para tipo boolean
null para tipos de referência (incluindo String)

Prof Silvano Oliveira (POO - Java) 9


Array literal

Quando sabemos de antemão o tamanho do array


e quais serão os valores que serão armazenados
nas posições do array, podemos usar literais de
array:

tipoDado[ ] variávelReferência = {valor1, valor2, …, valorN};

Prof Silvano Oliveira (POO - Java) 10


Array literal
Por exemplo, suponha um array de 5 posições do
tipo inteiro, do qual sabemos de antemão de será
necessário armazenar os números 5, 9, 12, 3 e 4.
podemos declarar esse array da seguinte forma:

int[ ] numeros = { 5, 9, 12, 3, 4 };

Neste caso, não é necessário usar o operador new


para criar o array (exceto em versões muito antigas
do Java).

Prof Silvano Oliveira (POO - Java) 11


Como acessar os elementos de um array em Java

Os elementos em um array são sempre


acessados por meio de seu número de índice
(que é a posição do elemento). Esse índice
sempre se inicia em zero, e termina
em tamanhoArray – 1.
Por exemplo, um array de dez posições tem a
sua primeira posição com índice zero e sua
última posição com 10 -1 = índice 9. Portanto, se
trata de um array cujas posições vão de 0 a 9.

Prof Silvano Oliveira (POO - Java) 12


Acessando e alterar posições individuais em um array (vetor)

Acessar um elemento individual em um array


simplesmente indicando o número de índice da
posição desejada (entre colchetes), junto ao
nome do array em si.

// Criar o array e atribuir-lhe valores a partir de uma lista de inicialização:


double[ ] valores = { 4.5, 5.9, 4.1, 2.0, 8.9, 6.3, 7.8, 5.3, 1.2, 0.8 };
// Acessando seu quinto elemento (número de posição 4)
System.out.println("Elemento 5 do array: " + valores[4])

Prof Silvano Oliveira (POO - Java) 13


Atribuindo valores

O mesmo vale para a atribuição de valores


ao array. Por exemplo, vamos modificar os
valores das posições de índices 4 e 6 para
2.3 e 7.1, respectivamente:

valores[4] = 2.3;
valores[6] = 7.1;

Prof Silvano Oliveira (POO - Java) 14


Mostrando o resultado

// Acessando os elementos alterados


System.out.println("Valor alterado para: " + valores[4]);
System.out.println("Valor alterado para: " + valores[6]);

Prof Silvano Oliveira (POO - Java) 15


Acessando todas as posições de uma vez via laço for

Podemos acessar todas as posições de um


array usando um simples laço for e a
propriedade length do array, como segue:

for (int i = 0; i < nomeArray.length; i++) {


Código a executar para cada elemento
}

Prof Silvano Oliveira (POO - Java) 16


Exemplo
Criar um array de números double e acessar seus elementos
usando um laço for.

// Criar array e atribuir-lhe valores a partir de uma lista de inicialização:


double[ ] valores = { 4.5, 5.9, 4.1, 2.0, 8.9, 6.3, 7.8, 5.3, 1.2, 0.8 };
// Mostrar todos os elementos do array:
for (int i = 0; i < valores.length; i++) {
System.out.println("Elemento " + i + " = " + valores[i]);
}

Prof Silvano Oliveira (POO - Java) 17


Resultado

Prof Silvano Oliveira (POO - Java) 18


Acessando todas as posições do array usando laço foreach

 Mostrar todos os elementos do array valores usando um


laço foreach (for enhanced em Java):

public static void main(String[ ] args) {


double[ ] valores = { 4.5, 5.9, 4.1, 2.0, 8.9, 6.3, 7.8, 5.3, 1.2, 0.8 };
// Mostrar todos os elementos do array:
for (double elemento: valores) {
System.out.println(elemento);
}
}

Prof Silvano Oliveira (POO - Java) 19


foreach
A declaração foreach é usada quando há a
necessidade de percorrer o array sem usar um
contador.

Observação: Cuidado ao usar um laço foreach


para iterar pelos elementos de um array em
Java. Essa técnica não é apropriada quando
queremos modificar o array, além de não manter
registro do número de índice que está sendo
acessado.

Prof Silvano Oliveira (POO - Java) 20


Exercicio
Crie uma classe Produtos, que contém
Um atributo nome do produto
Um atributo preço do produto (indicando o preço dos
produtos em diferentes supermercados) do tipo array com
5 posições
Um método para alterar cada atributo (setter)
Um método para obter o valor de cada atributo (getter)
Um método para encontrar o maior preço de um produto
Um método para encontrar o menor preço do produto
Um método para calcular o preço médio do produto

Prof Silvano Oliveira (POO - Java) 21


Arrays multidimensionais
 Esse tipo de array é declarado como tendo duas dimensões e é
usado para representar tabelas de valores que consistem em
informações organizadas em linhas e colunas.
 Os arrays bidimensionais precisam de dois índices para
identificar um elemento particular.

Prof Silvano Oliveira (POO - Java) 22


Arrays multidimensionais
Para criar uma matriz bidimensional, adicione
cada matriz dentro de seu próprio conjunto
de chaves:
Exemplo
int[ ][ ] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };

myNumbers é agora uma matriz com duas


matrizes como seus elementos.

Prof Silvano Oliveira (POO - Java) 23


Arrays multidimensionais
Para ter acesso aos elementos do MyNumbers
matriz, especificar dois índices: um para a matriz,
e um elemento para o interior dessa matriz. Este
exemplo acede ao terceiro elemento (2) na
segunda matriz (1) de MyNumbers:
Exemplo
int[ ][ ] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
int x = myNumbers[1][2];
System.out.println(x); // Saída 7

Prof Silvano Oliveira (POO - Java) 24


Arrays multidimensionais
 Também pode usar um for dentro do outro for para obter os
elementos de uma matriz bidimensional (ainda temos de apontar
para os dois índices):
 Exemplo
public class MyClass {
public static void main(String[ ] args) {
int[ ][ ] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
for (int i = 0; i < myNumbers.length; ++i) {
for(int j = 0; j < myNumbers[i].length; ++j) {
System.out.println(myNumbers[i][j]);
}
}
}
}

Prof Silvano Oliveira (POO - Java) 25

Você também pode gostar