Java Util Collections - Interfaces Interfaces definidas

Documentos relacionados
Collections. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

API e Coleções Java. Sérgio Luiz Ruivace Cerqueira

Coleções em Java. Prof. Gustavo Willam Pereira ENG10082 Programação II. Créditos: Prof. Clayton Vieira Fraga Filho

BSI UFRPE Prof. Gustavo Callou

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Coleções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior

Coleções. Prof. Marcelo Roberto Zorzan

COLECÇÕES DE OBJECTOS EM JAVA6

Programação Orientada a Objetos

Aula 11 POO 1 Coleções e Arquivos. Profa. Elaine Faria UFU

Herança vs Composição

LEIC-FEUP 2001/2002 Algoritmos e Estruturas de Dados 1. Arquitectura unificada para estruturas de dados mais comuns

11 Utilidades. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

Capítulo 21. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Introdução. Coleção HashMap Classe Java. Interesse

Programação Orientada a Objetos. Collections - Java

ArrayList. null. null. null ... ArrayList<Ponto2D>

Alberto Costa Neto DComp - UFS. Coleções

JAVA COLLECTIONS API: LISTAS

Atividade 08 - Utilizando Collections - List

Lista encadeada class No { Coleções. Enumeration. Lista encadeada (continuação) Enumeration Exemplo usando a classe Lista anterior

Java API. Giuliana Silva Bezerra

Coleções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade

Java Standard Edition (JSE)

Técnicas de Programação Avançada TCC Prof.: Anselmo Montenegro

Coleções POO. Prof. Marcio Delamaro

Collections Framework

Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.

PRDS - Programa de Residência em Desenvolvimento de Software

Coleções - continuação. Profa. Thienne Johnson EACH/USP

Orientação a Objetos AULA 09

Capítulo VIII. Tipo Abstracto de Dados Dicionário. Acesso por Chave

Agenda. Ideia. Buscar um item em um array. Função hash. Função hash. Hash Table. Introdução Definição Hash Table. Métodos de resolução de conflitos

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 19 de outubro de 12

Paradigmas da Programação PPROG. Linguagem JAVA. Contentores de Objetos

Análise e Projeto Orientados por Objetos

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

Lista Ligada. Nó de Lista Ligada

Rafael Santos. Instituto Nacional de Pesquisas Espaciais rafael.santos. Rafael Santos - rafael.

Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos

Tabelas de Dispersão. Tabela de Dispersão

Não é necessário implementar métodos de ordenação, busca, redimensionamento e etc.

Algoritmos e Programação II. Coleções. Coleções. Baseado no material do Prof. Julio

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Programação Orientada a Objetos com Java. Prof. Júlio Machado

Java Coleções. Rodrigo C. de Azevedo

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação Orientada a Objetos

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

TIPOS PARAMETRIZADOS CLASSES GENÉRICAS PARTE II

Paradigmas da Programação PPROG. Tipos de Dados. Enumerados Genéricos Coleções. Nelson Freire (ISEP DEI-PPROG 2012/13) 1/64

1-PACOTE java.awt 1.1-INTRODUÇÃO 1.2-CONTAINER

Programação Orientada a Objetos. Encapsulamento

Árvores e Mapas. Luís Lopes. Estruturas de Dados DCC-FCUP

ESTRUTURAS DE DADOS E ALGORITMOS LISTA LIGADA

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

Curso Java Starter. 1

Transcrição:

Java Util Collections - Interfaces Interfaces definidas 245 Collection Raiz da hierarquia Grupo mais genérico de elementos Não garante nas implementações Duplicatas Ordenação Não possui nenhuma implementação direta Iterator, extrutura de navegação next, hasnext, remove(optional) 1

Collection public interface Collection { // Basic Operations int size(); boolean isempty(); boolean contains(object element); boolean add(object element); // Optional boolean remove(object element); // Optional Iterator iterator(); // Bulk Operations boolean containsall(collection c); boolean addall(collection c); // Optional boolean removeall(collection c); // Optional boolean retainall(collection c); // Optional void clear(); // Optional // Array Operations Object[] toarray(); Object[] toarray(object a[]); Set Extends Collection Não contém duplicatas Não garante ordem entre os elementos Não acrescenta métodos Caracterização de tipo Operações Subconjunto (containsall) União (addall) Intercessão (reatinaall) Diferença (removeall) 2

List Extends Collection Coleção com o conceito de posição (ordem) de seus elementos Pode ter duplicatas Controle na posição de inserção ou remoção Acesso aos elementos pelo índice ListIterator hasprevious,previous, nextindex, previousindex List public interface List extends Collection { // Positional Access Object get(int index); Object set(int index, Object element); // Optional void add(int index, Object element); // Optional Object remove(int index); // Optional abstract boolean addall(int index, Collection c); // Optional // Search int indexof(object o); int lastindexof(object o); // Iteration ListIterator listiterator(); ListIterator listiterator(int index); // Range-view List sublist(int from, int to); 3

Map Mapeamento de chaves em valores Não possui chaves duplicadas Cada chave leva a somente um elemento Para uma busca efetiva, o objeto da chave deve reimplementar os métodos: hashcode equals Map public interface Map { // Basic Operations 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(); // Bulk Operations void putall(map t); void clear(); // Collection Views public Set keyset(); public Collection values(); public Set entryset(); // Interface for entryset elements public interface Entry { Object getkey(); Object getvalue(); Object setvalue(object value); 4

Ordenação de Objetos java.lang.comparable Ordem natural compareto(object) java.util.comparator Provê multiplas formas de ordenação compare(object,object) Retornos Inteiro negativo = menor que Zero = iguais Inteiro positivo = maior que Não são elementos do framework, apenas estruturas complementares Ordenação de Objetos Class Natural Ordering Byte Character Long Integer Short Double Float BigInteger BigDecimal File String Date CollationKey un system-dependent lexicographic on pathname. lexicographic chronological locale-specific lexicographic 5

SortedSet Extends Set Elementos ordenados de forma ascendente Algumas operações a mais para aproveitar a vantagem da ordenação public interface SortedSet extends Set { // Range-view SortedSet subset(object fromelement, Object toelement); SortedSet headset(object toelement); SortedSet tailset(object fromelement); // Endpoints Object first(); Object last(); // Comparator access Comparator comparator(); SortedMap Extends Map Mapeamento onde as chaves são ordenadas de forma ascendente. public interface SortedMap extends Map { Comparator comparator(); SortedMap submap(object fromkey, Object tokey); SortedMap headmap(object tokey); SortedMap tailmap(object fromkey); Object firstkey(); Object lastkey(); 6

Implementações Implementations Hash Table Resizable Array Balanced Tree Linked List Interfaces Set HashSet TreeSet List ArrayList, Vector LinkedList Map HashMap, Hashtable Hashtable x HashMap LinkedList x ArrayList x Vector TreeSet implements SortedSet TreeMap implements SortedMap TreeMap Algoritmos Sorting Collections.sort(list) Arrays.sort(array) Optimized merge sort (log n) Shuffling Collections.shuffle(list) Routine Data Manipulation Collections.reverse(list) Collections.fill(list,value) Collections.copy(detination,source) Arrays.fill(array,value) System.arrayCopy(dest,destPos,src,srcPos,length) 7

Algoritmos Searching Collections.binarySearch(list,value) Arrays.binarySearch(array,value) Finding Extreme Values Collections.max(list) Collections.min(list) Customizando Implementações Possíveis objetivos Persistência, Aplicação específica, Concorrência, Performance, Funcionalidade, Conveniência, Adaptação AbstractCollection (bag) iterator, size AbstractSet iterator, size AbstractList (uses array) Positional methods AbstractSequencialList (uses linked list) listiterator, iterator AbstractMap EntrySet view, put 8