0% acharam este documento útil (0 voto)
33 visualizações24 páginas

Arrays ArrayLists

O documento discute arrays e ArrayList em Java, incluindo definições, declaração, criação, acesso a elementos, métodos úteis e exemplos.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
33 visualizações24 páginas

Arrays ArrayLists

O documento discute arrays e ArrayList em Java, incluindo definições, declaração, criação, acesso a elementos, métodos úteis e exemplos.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 24

Arrays e Arraylists

Programação Orientada a Objeto (1COP009)


Prof. Bruno Bogaz Zarpelão
Objetivo
• Definições básicas sobre arrays em Java.
• Declaração e criação de um array.
• Instrução for aprimorada para percorrer arrays.
• Passando arrays como argumentos para métodos.
• Classe Arrays.

2
Array
• Grupo de variáveis (chamados elementos ou
componentes) que contém valores todos do mesmo tipo.
• Os elementos de um array podem ser tipos primitivos ou
tipos por referência.

3
Array
• O primeiro elemento do array no Java sempre é indexado
como 0.
• A expressão de acesso ao array é formada pelo nome do
array seguido pelo índice da posição entre colchetes:
– Ex.: c[0]
• O índice do array deve ser sempre um inteiro não
negativo.

4
Array
• Em Java, um array é um objeto.
• O atributo de instância length retorna o comprimento do
array:
– Ex.: c.length
• Não é possível alterar o valor do atributo length.
• É possível fazer operações utilizando os valores
armazenados no array, como em sum =
c[1]+c[2]+c[3].

5
Declarando e criando arrays
• Como qualquer outro objeto, um array é criado por meio
da palavra reservada new:
– int[] c = new int[12];
– String[] b = new String[100];
• A expressão new retorna uma referência que é
armazenada na variável do array.
• Quando criado, o array é inicializado com zeros (tipo
primitivo numérico), false (boolean) e null (referências);

6
Inicializador de array
• É possível criar um array e inicializar seus elementos com
um inicializador de array:
– int[] n = {10,20,30,40,50};

7
Exercício
• Suponha que uma empresa precisa contabilizar a
quantidade de vendas por faixa de valor para um relatório.
As faixas de valores são as seguintes: R$0 – R$99 ; R$100
– R$199; R$200 – R$299; R$300 – R$399; R$400 –
R$499; R$500 – +. Faça um programa que gere 50
valores de vendas aleatórias entre R$1 e R$700 e
contabilize o número de vendas por faixa. Essa
contabilização deve ser armazenada em um vetor. Dica:
para gerar valores inteiros aleatórios, utilize a classe
SecureRandom.
8
Instrução for aprimorada
• É uma instrução for que pode ser usada com arrays e
evita que tente-se acessar posições do array que não
existem:

for (parâmetro : nome do array)


instrução

9
Instrução for aprimorada
public class EnhancedForTest {
public static void main(String[] args) {
int[] array = {87, 68, 94, 100, 83, 78, 85, 91, 76, 87};
int total = 0;

// add each element's value to total


for (int number : array) {
total += number;
}

System.out.printf("Total of array elements: %d%n", total);


}
}

10
Exercício
• Escreva um aplicativo que usa uma instrução for
aprimorada para somar os valores inteiros passados pelos
argumentos de linha de comando.

11
Passando arrays para métodos
• Podemos passar um array inteiro como argumento para
um método.
• Neste caso, passamos como argumento apenas o nome
do array, sem colchetes.
• Esta passagem é feita por referência, já que o array é um
objeto.

12
Passando arrays para métodos
• Podemos passar também valores individuas contidos em
um array para um método.
• Neste caso, usamos o nome do array e os colchetes
indicando qual posição do array será passada como
argumento.
• Neste caso, a passagem do argumento é feita por valor.

13
Exercício
• Execute o seguinte código:
https://github.com/pdeitel/JavaHowToProgram11e_EarlyO
bjects/blob/master/examples/ch07/fig07_13/PassArray.jav
a
• O que você percebeu de diferente entre as duas
passagens de argumento?

14
Listas de argumentos de comprimento variável

• Com este recurso, é possível criar métodos que recebem


um número não especificado de argumentos.
• Vamos ao exemplo:
https://github.com/pdeitel/JavaHowToProgram11e_EarlyO
bjects/blob/master/examples/ch07/fig07_20/VarargsTest.ja
va

15
Listas de argumentos de comprimento variável

• As reticências só podem ser usadas uma única vez na lista


de parâmetros.
• Parâmetros declarados desta forma devem sempre ser os
últimos da lista.

16
Exercício
• Escreva um aplicativo que calcula o produto de uma serie
de inteiros que são passados para o método product
utilizando uma lista de argumentos de comprimento
variável. Teste seu método com várias chamadas, cada
uma com uma quantidade de argumentos.

17
Classe Arrays
• Esta classe da API Java oferece uma serie de métodos static
que implementam rotinas úteis para manipulação de arrays.
Exemplos:
– Arrays.sort(): ordena o conteúdo de um array.
– Arrays.binarySearch(): procura um elemento em um array
ordenado.
– Arrays.equals(): compara dois arrays.
• Vamos a um exemplo:
https://github.com/pdeitel/JavaHowToProgram11e_EarlyObjec
ts/blob/master/examples/ch07/fig07_22/ArrayManipulations.ja
va

18
ArrayList
• A API Java fornece várias estruturas de dados pré-
definidas, denominadas coleções (collections).
• Esta coleções oferecem uma vasta gama de métodos que
facilitam muito o trabalho com estruturas de dados.
• A coleção ArrayList<T> é uma delas.
• O T deve ser substituído, no momento da declaração, pelo
tipo dos dados que serão armazenados na coleção.
Exemplo: ArrayList<String> list;

19
ArrayList
• Classes que possuem este <T> são chamadas de classes
genéricas.
• Tipos primitivos não podem ser usados nestas classes
genéricas.
• A saída é usar classes conhecidas como wrappers:
Integer, Float, Double, etc.

20
ArrayList: alguns métodos úteis
Método Descrição
add Adiciona um elemento ao final do ArrayList
clear Remove todos os elementos do ArrayList
contains Retorna true se o ArrayList contém o elemento especificado; caso contrário, retorna false
get Retorna o elemento do índice especificado
indexOf Retorna o índice da primeira ocorrência do elemento especificado no ArrayList
remove Remove a primeira ocorrência do valor especificado ou o elemento no índice especificado
size Retorna o número de elementos armazenados em ArrayList

21
ArrayList - Exemplo
• Vamos conferir o exemplo em:
https://github.com/pdeitel/JavaHowToProgram11e_EarlyO
bjects/blob/master/examples/ch07/fig07_24/ArrayListColle
ction.java

22
Exercício
• Este sistema vai controlar a emissão de senhas para atendimento em uma repartição
pública. O sistema deve permitir as seguintes opções para manipulação da fila
composta pelas senhas emitidas:
– Emitir nova senha: o sistema deve emitir um valor inteiro aleatório para a senha e
posicioná-lo no final da fila;
– Desistir da fila: o sistema deve permitir que o usuário remova da fila um usuário que
desistiu de ser atendido;
– Atender usuário: o sistema deve permitir que o usuário portador da senha que está na
frente da fila seja atendido. A senha deve ser removida da fila.
– Buscar posição na fila: o sistema deve permitir que o usuário informe o número da senha e
receba como retorno a sua posição na fila.
– Imprimir fila: o sistema deve imprimir na tela os números de senha que estão aguardando
na fila;
• Faça um menu baseado em linhas de comando para manipulação do sistema.

23
Exercício – desafio extra
• Faça uma modificação no programa do exercício anterior:
– Agora temos duas filas, a comum e a preferencial.
– Sempre que houver um novo atendimento, a senha na fila
preferencial deve ser atendida primeiro. Há uma restrição para
esta regra: não podem ser atendidas mais que duas senhas
consecutivas da fila preferencial.

24

Você também pode gostar