7/23/2013 Programação de Computadores II TCC‐00.174 Profs.: Leandro A. F. Fernandes(A1) & Marcos Lage(B1) & Pedro Velloso(C1) (Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage (Turma C1) www.ic.uff.br/~velloso Conteúdo: Coleções de objetos em Java Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof. Leandro A. F. Fernandes Coleções de Objetos Definição simples e direta: Coleção é um objeto onde podemos agrupar vários objetos Java Collections Framework: Conjunto de classes que implementa uma das subinterfaces da interface Collection 23/07/2013 Programação de Computadores II 2 1 7/23/2013 Subinterfaces de java.util.Collection Collection<E> List<E> 23/07/2013 Map<K,V> Queue<E> Set<E> Deque<E> SortedSet<E> Entre outras subinterfaces SortedMap<K,V> Programação de Computadores II 3 Subinterfaces de java.util.Collection List<E> Interface diretamente ligada a ideia de lista de elementos, que podem ser acessados pelo índice Deque<E> Representa uma coleção onde elementos podem ser incluidos ou removidos de ambas as extremidades Queue<E> Representa a ideia de fila (FIFO) 23/07/2013 Programação de Computadores II 4 2 7/23/2013 Subinterfaces de java.util.Collection Set<E> Interface diretamente ligada a ideia de conjunto. As classes que implementam esta interface não podem conter elementos repetidos SortedSet<E> Um Set<E> que mantém seus elementos ordenados 23/07/2013 Programação de Computadores II 5 Subinterfaces de java.util.Collection Map<K,V> Um mapa associa um valor a uma chave. Não é permitida a inclusão de chaves duplicadas neste mapeamento SortedMap<K,V> Um Map<K,V> que mantém seus elementos ordenados por chave 23/07/2013 Programação de Computadores II 6 3 7/23/2013 Algumas classes do Java Collection Framework List<E> LinkedList<E> ArrayList<E> Stack<E> Deque<E> Queue<E> ArrayDeque<E> PriorityQueue<E> 23/07/2013 Programação de Computadores II 7 Algumas classes do Java Collection Framework Set<E> SortedSet<E> HashSet<E> TreeSet<E> LinkedHashSet<E> 23/07/2013 Programação de Computadores II 8 4 7/23/2013 Algumas classes do Java Collection Framework Map<K,V> SortedMap<K,V> HashMap<K,V> TreeMap<K,V> LinkedHashMap<K,V> 23/07/2013 Programação de Computadores II 9 Algumas classes do Java Collection Framework Coleções Não Ordenadas ArrayList<E> HashSet<E> HashMap<K,V> LinkedList<E> LinkedHashSet<E> LinkedHashMap<K,V> TreeSet<E> TreeMap<K,V> Stack<E> ArrayDeque<E> Coleções Ordenadas 23/07/2013 PriorityQueue<E> Programação de Computadores II 10 5 7/23/2013 Para aprender mais... Estude por conta própria as interfaces e classe citadas nos slides anteriores O javadoc dessas interfaces e classes possui toda a informação que você precisa Métodos de ordenação, embaralhamento, cópia e busca são implementados pela API 23/07/2013 Programação de Computadores II 11 Interface java.util.Iterable A interface Collection é subinterface de Iterable Objetos que implementam a interface Iterable podem ser utilizados na declaração “foreach” Collection<SomeClass> c = Uma coleção de SomeClass for (SomeClass curr : c) { curr é a referência para o objeto atual em c } 23/07/2013 Programação de Computadores II 12 6