Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Rodrigo Paes
Associaes
Carro
Atributo - coleo
1
Marcha
4
Roda
1
Volante Aluno
Atributos simples
Professor
Associaes
Atributos simples (relacionamentos 1 para 1) Um atributo para cada instncia??? Ou seja, n atributos???
Carro public class Carro{ private Marcha marcha; private Volante volante; public Carro(Marcha marcha, Volante volante){ this.marcha = marcha; this.volante = volante; } }
1
Marcha
1
Volante
Associaes
Atributos de coleo (relacionamentos 1 para n) Um atributo para cada instncia??? Ou seja, n atributos???
Carro public class Carro{ private Marcha marcha; private Volante volante; private Roda roda1; private Roda roda2; private Roda roda3; private Roda roda4; ... }
4
Roda
Associaes
Problema??? E se for um time de futebol??? Relacionamento entre Time e Jogador 1 para 11.
Time
11
Jogador
public class Time{ private Jogador jogador1; private Jogador jogador2; ... private Jogador jogador11; ... }
Associaes
Precisamos de um saco para guardar vrios objetos de um mesmo tipo Precisamos de um array
Array de rodas!!!
Associaes
Usando array!!!
Carro
4
Roda
Associaes
Usando array!!!
public class TestePrincipal{ public static void main(String args[]){ Marcha minhaMarcha = new Marcha(); Volante meuVolante = new Volante(); Roda[ ] rodas = new Roda[4]; rodas[0] = new Roda(Dianteira direita); rodas[1] = new Roda(Dianteira esquerda); rodas[2] = new Roda(Traseira direita); rodas[3] = new Roda(Traseira esquerda); Carro meuCarro = new Carro(minhaMarcha, meuVolante, rodas); } }
Ps-Sistemas de Informao - FAL
E se ?
No soubermos o nmero de objetos a priori?
Cheio!!
Turma
n
Alunos
E se ?
Aumentamos o tamanho do saco dinmicamente
Turma
n
Alunos
Coleo
Coleo
Objeto que agrupa mltiplos elementos em uma nica unidade Armazena, recupera e manipula dados agregados
Estrutura bsica
Em Java, as colees esto divididas em 03 partes
Definio das interfaces
Definem os tipos e como eles podem ser manipulados
Implementao das interfaces atravs de classes concretas Um conjunto de algoritmos para a manipulao dessas colees
Busca, ordenao
http://java.sun.com/docs/books/tutorial/collections/index.html
Rodrigo Paes r0drigopaes@yahoo.com.br
Interfaces principais
Collection
Raiz da hierarquia Representa um grupo de objetos No diz muita coisa:
Alguns tipos permitem elementos duplicados, outros no Alguns so ordenados, outros no
Set
uma coleo que no pode conter elementos duplicados a noo de conjunto da matemtica
List
uma coleo ordenada Podem conter elementos duplicados Contm mtodos de acesso a determinadas posies da coleo.
Object get(int index); Object set(int index, Object element); boolean add(Object element); void add(int index, Object element); Object remove(int index); boolean addAll(int index, Collection c); // Search int indexOf(Object o); int lastIndexOf(Object o); // Range-view List subList(int from, int to);
Map
Manipula objetos fazendo chave
key 2003G55d041v9 2005G55d012v7 value
valor
rodrigo:Aluno nome:Rodrigo idade:28
Map
Operaes bsicas
Object put(Object key, Object value); Object get(Object key); Object remove(Object key); boolean containsKey(Object key); boolean containsValue(Object value); int size(); boolean isEmpty();
Tarefa 02
A TECTOY vai dar os nomes de seus funcionrios aos brinquedos Somente o primeiro nome ser utilizado, o sobrenome deve ser ignorado Cada nome s poder ser utilizado uma nica vez Prepare uma lista de nomes nicos
Queue
LinkedList PriorityQueue
Rodrigo Paes r0drigopaes@yahoo.com.br
Regras
Sempre devemos ter referncias as interfaces e nunca ao tipo concreto
Exerccio
Leia um arquivo contendo linhas com dois campos separados por ":" Insira cada linha numa coleo
Se a coleo for um mapa, o primeiro campo a chave, o segundo campo a valor Se a coleo no for um mapa, insira a linha inteira como String
Leia um segundo arquivo linha por linha e pesquise se cada linha est na coleo, imprimindo quantos elementos foram descobertos Use as 06 classes abaixo
ArrayList LinkedList HashSet TreeSet HashMap TreeMap
Rodrigo Paes r0drigopaes@yahoo.com.br
Sada
Elementos encontrados usando java.util.HashMap: 5000 Tempo da carga de dados: 2.032 segundos Tempo da pesquisa de dados: 0.807 segundos Tempo total: 2.839 segundos
Exerccio: observaes
Arquivo 1 est disponvel no site Arquivo 2 o que ser pesquisado Importante:
O cdigo que voc enviar deve rodar usando a mesma sintaxe da linha de comando do slide anterior
Exerccio: dicas
Leitura de arquivos
BufferedReader arquivoComDados = new BufferedReader(new FileReader(args[1])); BufferedReader arquivoComPesquisa = new BufferedReader(new FileReader(args[2]));
http://java.sun.com/docs/books/tutorial/essential/io/charstreams.html http://www.javapractices.com/topic/TopicAction.do?Id=42 http://java.sun.com/docs/books/tutorial/essential/io/ http://java.sun.com/docs/books/tutorial/essential/io/datastreams.html
Mais fcil
O que achou?
Quem foi mais rpido?
Para carregar? Para pesquisar?