Walfredo Cirne walfredo.dsc.ufpb.br

Slides:



Advertisements
Apresentações semelhantes
Programação Orientada a Objetos*
Advertisements

Avaliador de Expressões
Estruturas de Repetição
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Projeto de Sistemas de Software Trabalho de Padrões de Projeto
Padrão de Projeto Iterator
Orientação a Objetos: Modificador Final para Métodos e Classes
Polimorfismo e Classes Abstratas Profa
A linguagem C#.
Métodos Programação II
Métodos Programação II
Métodos Programação II 1 Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre Elementos de Classe, class wrappers.
Estruturas Hierárquicas (Árvores Binárias)
Listas Encadeadas.
Classes e objetos Arrays e Sobrecarga
Estrutura de Dados em Java
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Departamento de Estatística e Informática
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
Professor: Hyggo Almeida
JAVA Orientação a Objetos
Hashing - Espalhamento
Atributos, Encapsulamento e Interface em Java
Os métodos equals() e hashCode()
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Orientação a Objetos e Java Graduação em Ciência da Computação
Capítulo 1. static import  A importação estática pode ser utilizado quando queremos acessar métodos ou atributos estáticos de uma outra classe.  Através.
Coleções em Java Vitor Brandi Junior
Pilhas Profa. Nádia Félix.
Módulo I Capítulo 6: Matrizes
Listas Simplesmente Encadeadas
Laboratório I Mateus Raeder Material baseado nos originais da Profa. Denise Bandeira.
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Polimorfismo.
Java 2 Collections Framework
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Curso de Linguagem Java
Funções Matemáticas e de String
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Principais Pacotes e Coleções
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Linguagem I Strings.
Módulo 9 Strings , Coleções e I/O
Estruturas de Dados I Segundo Período de 2008 Gabarito da Primeira Prova.
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,
April 05 Prde. Ismael H. F. Santos - 1 Modulo II – Tópicos em Java – Collections Prde. Ismael H F Santos.
Gerador de Tabela-Verdade
Coleções em Java - Parte 2
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.
Bruno Inojosa MCP.NET Framework.NET com C#. Orientação a Objeto parte II.
POO - I PROF.: JEAN CARLO MENDES
 A linguagem Java tem diversas classes para a manipulação dos conjuntos de dados. Esses dados podem ser organizados de duas maneiras diferentes: ◦ Vetores.
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.
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
COLEÇÕES Dilvan Moreira (baseado no livro Big Java)
Capítulo 4. Conjuntos  Introdução  Principais operações de conjuntos  Principais interfaces de conjuntos  A interface Collection  A interface Iterator.
Minicurso Java Básico Ruddá Beltrão | Cristian Costa.
Aplicativos para Web Collections Prof. Odair
Capítulo 20 Coleções genéricas
Transcrição da apresentação:

Walfredo Cirne walfredo.dsc.ufpb.br Java Containers Walfredo Cirne walfredo.dsc.ufpb.br

Armazenando Objetos Qualquer programa não-trivial cria objetos para os quais não há referências explicitas Estruturas de Dados servem exatamente para armazenar estes objetos Diferentes estruturas de dados variam nas operações permitidas e na performance de cada operação Java contém uma série de estrutura de dados em java.util

Arrays  Containers Arrays são um objeto especial de Java, com sintaxe especialmente definida int A[] = new int[10]; fortemente tipado Containers são objetos “comuns” parte do pacote java.util fracamento tipado (usa Object)

Arrays Array é um tipo embutido da linguagem Array é um objeto fortemente tipado sintaxe especial para uso Array é um objeto referências são utilizadas Array é uma sequência linear de acesso randômico o tamanho do array não pode ser alterado o método lenght() retorna o tamanho do array Array é eficiente (embora não seja flexivel)

Utilitários para Array java.util.Arrays contém métodos estáticos para manipulação de arrays equals( ), compara se dois arrays são iguais fill(), preenche um array com um valor sort(), ordena o array binarySearch( ), acha um elemento em um array ordenado asList( ), permite que um array seja manipulado como uma lista System.arraycopy( ) copia mais rápido que um loop com a atribuição de cada elemento

Containers

Collection Armazenamento de objetos List é uma collection que tem noção de ordem Set é uma collection que não contém objetos duplicados Collection, List e Set são interfaces

List ArrayList é um array que cresce por demanda Bom para acesso randômico LinkedList é uma lista duplamente encadeada Bom para alterações no meio da lista

HashSet HashSet é um hash dinâmico Acesso rápido constante com boa função hash Não tem garantia de ordem Objetos incluídos tem que implementar hashCode()

TreeSet TreeSet é uma árvore vermelho-preta Acesso logarítmico Provê garantia de ordem Objetos incluídos tem que implementar compareTo() Ou então um Comparator precisa ser fornecido na criação do objeto TreeSet

Map Um Map guarda um objeto em associação com uma chave A Pesquisa é feita pela chave, que é única Um Map é um array associativo HashMap implementa Map usando hash dinâmico (rápido e desordenado) TreeMap implementa Map usando árvore vermelho-preta (“lento” e ordenado)

Containers

Tipagem Fraca Você perde a informação sobre tipo quando você coloca um objeto no container Portanto, não há restrição ao tipo de objeto que pode ser colocado em um certo container Portanto, ao retirar um objeto de um container, você precisa casteá-lo para o tipo correto

import java.util.*; public class MiceAndCats { public static void main( String[] args ) { ArrayList Mice = new ArrayList(); for( int i = 0; i < 7; i++ ) Mice.add( new Mouse(i) ); Mice.add( new Cat(7) ); for( int i = 0; i < Mice.size(); i++ ) ( (Mouse)Mice.get(i) ).print(); // Cat is detected only at run-time } }

import java.util.*; public class MouseList { private ArrayList list = new ArrayList(); public void add( Mouse m ) { list.add( m ); } public Mouse get( int index ) { return ( Mouse )list.get( index ); } public int size() { return list.size(); } }

Tipos Parametrizados O problema de tipagem fraca dos containers seria elegantemente resolvido se Java suportasse Tipos Parametrizados Suporte a tipos parametrizados permitem que se passe um tipo como parâmetro Quem sabe em Java 3? :-)

Iterator Um Iterator é uma abstração que permite percorrer um container sem saber seu tipo Obtém-se um iterator através do método iterator() do container next() retorna o próximo objeto hasNext() retorna se há um próximo objeto remove() apaga o último elemento retornado

Iterator: Exemplo class Printer { static void printAll( Iterator e ) { while( e.hasNext() ){ System.out.println(e.next()); } } }

Deprecated Containers Hashtable é um HashMap synchronized e que não permite null Vector é um ArrayList synchronized Stack é uma subclasse de Vector que implementa Pilha