Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.

Slides:



Advertisements
Apresentações semelhantes
Soluções Iterativas com Laços
Advertisements

Avaliador de Expressões
Estruturas de Repetição
Eventos Marco Antonio, Arquiteto de Software – TJDF Novembro/2005
Classes Abstratas e Interfaces
Reflexão Marco Antonio Arquiteto de Software Novembro/2007.
Programação Orientada a Objeto
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Modificadores Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Utilitários Marco Antonio. Enum Como o nome sugere, é uma enumeração de opções para uma determinada situação A principal vantagem é limitar as opções.
Entrada e Saída Marco Antonio Arquiteto de Software Dezembro/2007.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Relatórios Marco Antonio Software Architect Agosto
Marco A. S. Reis EJB Acesso Remoto Marco A. S. Reis
Java Básico Arrays Marco Antonio, Arquiteto de Software – TJDF Atualizado: Fevereiro/2009.
Projeto de Sistemas de Software
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Orientação a Objetos: Modificador Final para Métodos e Classes
Eduardo Bezerra Padrões GoF Eduardo Bezerra
Walfredo Cirne walfredo.dsc.ufpb.br
Wagner Santos C. de Jesus
Caio Nakashima Hibernate Associação Caio Nakashima
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Tipos Agregados Homogêneos e Listas
Unidade I: “Dê um mergulho rápido”
Programação Orientada a Objetos com Java
Professor: Hyggo Almeida
C# Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 23/09/2002 Autor: Marden Menezes Costa Propriedades.
Interfaces.
Hashing - Espalhamento
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
Orientação a Objetos e Java Graduação em Ciência da Computação
Professora Lucélia Oliveira
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
Coleções em Java Vitor Brandi Junior
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
POO - I Prof.: Jean Carlo Mendes
LPII Professora Lucélia. Pacotes Um pacote em Java é um diretório onde ficam armazenadas uma ou mais classes. Geralmente as classes com a mesma afinidade.
Wagner Santos C. de Jesus
Programação Orientada a Objetos - Java
Entity Beans Marco Antonio Arquiteto de Software Dezembro/2007.
Implementação Orientada a Objetos – Aula 03
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Curso de Linguagem Java
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
M ÉTODOS DA C LASSE S TRING. FUNÇÕES COM STRING Uma string é um tipo texto que corresponde à união de um conjunto de caracteres. Em Java, as strings são.
Módulo 9 Strings , Coleções e I/O
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Gerador de Tabela-Verdade
Coleções em Java - Parte 2
Herança Modelagem e Programação Orientada a Objetos
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
POO - I PROF.: JEAN CARLO MENDES
Coleções em Java (Parte 1)
Laboratório de Programação II Método main Dados e Métodos de Classes.
Array e ArrayList LPOO – 01/09/14.
Curso Básico de Android
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Capítulo 4. Conjuntos  Introdução  Principais operações de conjuntos  Principais interfaces de conjuntos  A interface Collection  A interface Iterator.
Aplicativos para Web Collections Prof. Odair
Percorrendo coleções com Iterator
Transcrição da apresentação:

Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008

Coleções Mecanismo que permite o armazenamento de vários objetos. É uma solução flexível e simples. Principais métodos: add(), remove(). put(), get(). Não aceitam tipos primitivos (int, short, long, etc).

Tipos Listas e conjuntos. Iterators. Mapas. Propriedades.

Consequências Eficiência no acesso, na busca ou na inserção. Forma de organização de dados.

Características Oferece uma biblioteca de classes e interfaces (pacote java.util). Implementa as principais estruturas de dados de forma reutilizável, usando apenas duas interfaces comuns. Oferece implementações de cursor para iteração para extrair dados de qualquer estrutura usando uma única interface.

As interfaces

Implementações

Várias possibilidades Como você pôde ver, existem várias classes/interfaces com características específicas para cada necessidade. Vamos ver as soluções mais comuns. O mundo das coleções é muito extenso e não será totalmente coberto nesta apresentação. Mesmo assim, a grande maioria das necessidades dos sistema é atendida com folga pelos exemplos aqui mostrados.

Collection Vamos dar uma olhada na interface java.util.Collection. No exemplo utilizaremos a implementação ArrayList.

Iterator Para navegar pelos objetos de uma coleção devemos utilizar o Iterator. Uma coleção pode ter vários Iterators. Os principais métodos: hasNext() - verifica se existem mais elementos. next() - recupera o próximo elemento. remove() - remove um elemento.

ObjetoQualquer package com.javabasico.collection; public class ObjetoQualquer { private String nome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; }

Exemplo completo package com.javabasico.collection; import java.util.*; public class ExemploDeCollection { public static void main(String[] args) { /* * Essa é a sintaxe para criar uma coleção simples. */ Collection colecao = new ArrayList(); /* * Agora, vamos criar alguns objetos e fazer as atribuições. * */ ObjetoQualquer objeto1 = new ObjetoQualquer(); objeto1.setNome("Primeiro nome"); ObjetoQualquer objeto2 = new ObjetoQualquer(); objeto2.setNome("Segundo nome"); ObjetoQualquer objeto3 = new ObjetoQualquer(); objeto3.setNome("Terceiro nome");

Exemplo completo /* * O último passo é adicionar cada um dos objetos em nossa coleção. */ colecao.add(objeto1); colecao.add(objeto2); colecao.add(objeto3); /* * Para recuperar os objetos de uma coleção devemos utilizar um Iterator. * Veja o exemplo de sintaxe. * Observação: só existe a possibilidade de navegação para frente. */ Iterator iteColecao = colecao.iterator(); while (iteColecao.hasNext()) { //Conversão obrigatória. Atenção a esse detalhe!!! ObjetoQualquer objetoRecuperado = (ObjetoQualquer) iteColecao.next(); //Pronto, agora você pode utilizar o objeto que foi recuperado da maneira que quiser. System.out.println("Objeto recuperado: " + objetoRecuperado.getNome()); }

Pessoa package com.javabasico.collection; public class Pessoa { private String nome; private String endereco; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEndereco() { return endereco; } public void setEndereco(String endereco) { this.endereco = endereco; }

FabricaDePessoas package com.javabasico.collection; import java.util.*; public class FabricaDePessoas { public Collection getListaDePessoa() { Pessoa jose = new Pessoa(); jose.setNome("Jose"); jose.setEndereco("Algum Lugar"); Pessoa carlos = new Pessoa(); carlos.setNome("Carlos"); carlos.setEndereco("Outro Lugar"); Pessoa diego = new Pessoa(); diego.setNome("Diego"); diego.setEndereco("Sua Casa"); Collection lista = new ArrayList(); lista.add(diego); lista.add(jose); lista.add(carlos); return lista; }

ImprimeListaDePessoas package com.javabasico.collection; import java.util.*; public class ImprimeListaDePessoas { public static void main(String[] args) { 1. FabricaDePessoas fabrica = new FabricaDePessoas(); 2. Collection listaDePessoas = fabrica.getListaDePessoa(); 3. Iterator iteListaDePessoas = listaDePessoas.iterator(); 4. while (iteListaDePessoas.hasNext()) { 5. Pessoa pessoaRecuperada = (Pessoa) iteListaDePessoas.next(); 6. System.out.println(pessoaRecuperada.getNome()); 7. System.out.println(pessoaRecuperada.getEndereco()); }

ImprimeListaDePessoas 1.Cria a nossa fábrica de objetos. 2.Recupera a lista de pessoas da fábrica. 3.Recupera o iterator para ler os objetos da coleção. 4.Loop – iteração 5.Recupera a próxima pessoa. 6.Imprime o nome da pessoa. 7.Imprime o endereço da pessoa.

Set Agora vamos ver um exemplo de java.util.Set. A implementação será HashSet. Set não permite valores repetidos.

ExemploDeSet package com.javabasico.collection; import java.util.*; public class ExemploDeSet { public static void main(String[] args) { Set conjunto = new HashSet(); conjunto.add("um"); conjunto.add("dois"); conjunto.add("três"); conjunto.add("um"); Iterator iteConjunto = conjunto.iterator(); while (iteConjunto.hasNext()) { System.out.println(iteConjunto.next()); }

sort package com.javabasico.collection; import java.util.*; public class TesteOrdenacao { public static void main(String[] args) { List listaDesordenada = new ArrayList(); listaDesordenada.add("Jose"); listaDesordenada.add("Maria"); listaDesordenada.add("Joao"); listaDesordenada.add("Airton"); listaDesordenada.add("Zulima"); // Imprima a lista desordenada Collections.sort(listaDesordenada); // Imprima a lista ordenada }

Map O Map tem uma combinação de chaves/valores. Funciona da seguinte maneira: uma chave está associada a um valor. As chaves, claro, são únicas. Os valores podem ser duplicados.

Principais métodos put(Object key, Object value) – acrescenta um objeto na lista, associando-o a uma chave. get(Object key) - retorna um objeto através de sua chave. keySet() - retorna um Set com as chaves values() - retorna uma Collection com os valores.

ExemploDeMap package com.javaavancado.collection; import java.util.*; public class ExemploDeMap { public static void main(String[] args) { Map mapa = new HashMap(); mapa.put("um", "Primeiro valor"); mapa.put("dois", "Segundo valor"); mapa.put("tres", "Terceiro valor"); System.out.println("Valor recuperado: " + mapa.get("dois")); Set chaves = mapa.keySet(); Collection valores = mapa.values(); System.out.println(chaves); System.out.println(valores); }

Properties Mecanismo utilizado principalmente para recuperar informações do sistema.

ExemploDeProperties package com.javabasico.collection; import java.util.*; public class ExemploDeProperties { public static void main(String[] args) { Properties p = System.getProperties(); System.out.println("Todas as propriedades do sistema operacional:"); System.out.println(p); System.out.println("Imprimindo propriedades isoladas:"); System.out.println("Nome do SO: " + p.get("os.name")); System.out.println("Nome do Runtime: " + p.get("java.runtime.name")); System.out.println("País do usuário: " + p.get("user.country")); // Imprima a versão do java, o diretório do usuário, o nome do usuário. }

Dúvidas?