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

Aula 07 - Arrays - Collections - ArraysList

Enviado por

bbrunomello1
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)
14 visualizações19 páginas

Aula 07 - Arrays - Collections - ArraysList

Enviado por

bbrunomello1
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/ 19

Arrays e ArrayLists

Collections
Vinicius Ramos
Visão Geral
 Arrays
 O que são?
 Armazenamento e recuperação de dados de listas e
tabelas de valores;
 Declaração, inicialização e referência a elementos
específicos;
 Instrução for aprimorada;
 Arrays multidimensionais;
 Classe Arrays
 Introdução à coleções e ArrayLists.
Arrays
 É um grupo de variáveis (chamados elementos ou
componentes) que contém valores todos do
mesmo tipo;
 Arrays são objetos, portanto, tipos por referência;
 Os elementos de um array podem ser tipos
primitivos ou tipos por referência (inclusive arrays);
 Como referenciar um elemento?
Elemento

arr [ índice ];

Nome da referência Colchetes


Arrays
 O primeiro elemento de um array tem índice zero;
 O último elemento de um array tem índice n-1, onde
n é a quantidade de elementos no array;
 Um índice é um valor int ou um tipo que possa ser
promovido a int (byte, short ou char);
 Declaração e criação de arrays:
int[ ] c = new int [ 12 ];
int[ ] c;
c = new int [ 12 ];
String[ ] s = new String [ 20 ];
Notas[ ] n = new Notas [ 25 ];
Arrays

Retirado de: http://www.roseindia.net/java/tools/master-java/one_diamentional-array.gif


Arrays
 Como inicializar um array?
int[ ] n = { 10, 20, 30, 40, 50 };
String[ ] s = { “um”, “dois”, “três”, “quatro” };

 Imprimindo os elementos de um array:


int[ ] array = { 10, 20, 30, 40, 50 };

System.out.printf(“%s%8s\n”, “Index”, “Value”);

for (int counter = 0; counter < array.lenght ; counter++) {


System.out.printf(““%5d%8d\n”, counter, array [ counter ] );
}
Exemplos
 Somando os elementos de um array:
public class SumArray {
public static void main ( String[ ] args) {
int[ ] array = { 87, 34, 25, 98, 63, 73, 88, 45,12, 77 };
int total = 0;

for (int counter = 0; counter < array.lenght ; counter++) {


total += array [ counter ];
}
System.out.printf(“Valor total do elementos do array: %d\n”, total);
}
}
Exemplos
 Programa de análise de enquete:
public class StudentPoll {
public static void main ( String[ ] args) {
int[ ] responses = { 1, 2, 2, 5, 6, 7, 8, 3, 2, 1, 6, 7, 8, 9, 9, 10,
2, 3, 7, 8, 10, 10, 4, 5, 6, 2, 1, 2, 10, 3, 8, 7, 9, 9, 1, 3 };
int[ ] frequency = new int [ 11 ];

for (int answer = 0; answer < responses.lenght ; answer++) {


++frequency [ responses [ answer ] ] ;
}
System.out.printf(“%s%8s\n”, “Index”, “Value”);

for (int rating = 1; rating < frequency.lenght ; rating++) {


System.out.printf(“%d%10d\n”, rating, frequency [ rating ] );
}
}
}
A Istrução for Aprimorada
 Esta instrução itera pelos elementos de um array
sem usar um contador;
for ( parâmetro : nomeDoArray )
instrução
 Soma dos elementos do array (modificada):
public class EnhancedForTest {
public static void main ( String[ ] args) {
int[ ] array = { 87, 34, 25, 98, 63, 73, 88, 45,12, 77 };
int total = 0;

for (int number : array) {


total += number;
}
System.out.printf(“Valor total do elementos do array: %d\n”, total);
}
}
Passagem de Arrays para Métodos
 Em Java, a passagem de Arrays para métodos é
feita por referência:
 A alteração da referência, também altera o array;
 Exemplo:
double[ ] hourlyTemperatures = new double[ 24 ];
modifyArray( hourlyTemperatures );

//------------Método-------------
void modifyArray( double[ ] b) { … }

 Vejamos o exemplo de passagem de Arrays em


PassArray.java.
Listas de argumentos de comprimento
variável
 Criar métodos com tamanhos não especificados de
argumentos;
 Para isso, o argumento deve ter um tipo seguido de
reticências (…);
public static double average ( double... numbers ) {
//TODO: implementar metodo
}
 Vejamos um exemplo na classe VarargsTest.java.
Classe Arrays
 Ajuda a evitar a reinventar a roda;
 Fornece métodos static para manipulação de arrays
comuns;
 Vamos dar uma olhadinha nos métodos da classe
Arrays no JavaDoc:
 http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html
Introdução a Coleções
 A API Java oferece um conjunto de estruturas de
dados pré-definidas chamadas Coleções;
 As coleções armazenam objetos relacionados;
 Oferecem métodos eficientes para organizar,
armazenar e recuperar seus dados, sem que seja
necessário conhecer como os dados são
armazenados.
ArrayList
 Vamos ao exemplo de arrays que acabamos de
utilizar;
 Em Java existe a coleção ArrayList <T> (do pacote
java.util) que permite o armazenar sequências de
objetos e pode alterar o seu tamanho em tempo de
execução;
 Lembre-se que os arrays anteriores possuiam tamanhos
pré-definidos;
 O T é reservado ao tipo de elemento que você
deseja armazenar:
ArrayList< String > list;
ArrayList
 Como o ArrayList é uma classe, precisaremos de um
objeto para manipular essa nossa estrutura de
dados;
 Como criar um objeto?
ArrayList< String > list = new ArrayList< String >( );
 Vamos olhar os métodos da classe ArrayList na
documentação Java:
 http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
 Exemplo de manipulação da instância de ArrayList
em ArrayListCollection.java.
Exercícios
1. Utilize um array unidimensional para resolver o
seguinte problema: Escreva um aplicativo que
insere cinco números, cada um entre 10 e 100,
inclusive. À medida que cada número é lido, só o
exiba se ele não for uma duplicata de um número
já lido. Cuide de tratar o "pior caso", em que todos
os cinco números são diferentes. Utilize o menor
array possível para resolver este problema. Exiba
o conjunto completo de valores únicos inseridos
depois que o usuário inserir cada valor novo.
Exercícios
2. Escreva um aplicativo para simular o lançamento de
dois dados. O aplicativo deve utilizar um objeto da
classe Random uma vez para lançar o primeiro dado e
novamente para lançar o segundo dado. A soma dos
dois valores deve então ser calculada. Cada dado pode
mostrar um valor inteiro de 1 a 6, portanto a soma dos
valores irá variar de 2 a 12, com 7 sendo a soma mais
frequente e 2 e 12, as somas menos frequentes. Utilize
um array unidimensional para contar o número de
vezes que cada possível soma aparece. Exiba os
resultados em formato tabular. Determine se os totais
são razoáveis (por exemplo, há seis maneiras de
lançam um 7, então aproximadamente um sexto de
todos os lançamentos deve ser 7.
Exercícios
3. Nas versões anteriores da classe GradeBook nós
armazenávamos um número finito de notas.
Portanto, vamos criar nossa classe GradeBook
com o intuito de inserir quantas notas o professor
quiser para a sua disciplina. Para isso, utilize um
ArrayList<int> como variável de instância. Não
esqueça de criar o nome do curso. Crie métodos
para: listar todas as notas, descobrir a menor nota,
descobrir a maior nota, calcular a média das notas
e apresentar um gráfico de barras ( use o caracter
"*" para isso) mostrando a distribuição das notas
dos alunos. Assuma que as notas variam de 0 a
100, inclusive.
Referências
• DEITEL, H. M. & DEITEL, P. J. Java: como
programar. 8. ed. São Paulo: Pearson Prentice Hall,
2010

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy