Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouVasco José Lencastre Paixão Alterado mais de 8 anos atrás
1
COLEÇÕES Dilvan Moreira (baseado no livro Big Java)
2
Leitura Parte do capítulo 20 (1st Edition) Parte do capítulo 22 (2nd Edition)
3
Objetivos Entender: Coleções
4
Lembrando: Jogando Exceções Exceções: Evento que interrompe o fluxo normal de instruções Não podem ser esquecidas Mandadas diretamente para um handler Jogadas através de objetos Exception para sinalizar uma condição exceptional Não precisa salvar objetos Exception em variáveis throw new IllegalArgumentException("Amount exceeds … "); Quando uma exceção é jogada, o método termina imediatamente Execução continua no handler da exceção
5
Lembrando: Exemplo public class BankAccount { public void withdraw(double amount) { if (amount > balance) { IllegalArgumentException exception = new IllegalArgumentException( "Amount exceeds balance"); throw exception; } balance = balance - amount; }... }
6
Agrupando Objetos Podemos ter uma classe Car para modelar carros e uma subclasse Sedan para modelar um subtipo. Mas como uma classe Tires se relaciona com Car? Carros tem pneus, mas um pneu não é um tipo de carro. Agregação: é uma relação parte todo Um pneu é uma parte de carro (todo)
7
Associação Define uma relação entre classes que permite a um objeto de uma classe mandar mensagens (e mudar o estado) de objetos de outra classe da associação. Associação entre as classes Seminar e Course:
8
Composição Tipo de associação onde existe uma relação parte todo entre as partes e que as parte não podem existir sem o todo. Exemplo: Uma sala é parte de um prédio, mas não existe sala se o prédio não existir. Dedos e mãos. Composição: Building X Room:
9
Agregação Tipo de associação onde existe uma relação de parte todo, mas os objetos que representam o todo não possuem os objetos que representam as partes Exemplo: Uma universidade tem vários departamentos e cada um tem vários professores. Mas se a universidade fechar, os departementos deixam de existir mas os professores não. Agregação X Composição
10
Java Generics Programação usando genéricos Criação de estruturas de dados que podem ser usadas com tipos diferentes Exemplos: Java's ArrayList (e.g. ArrayList ) Generic class: declarada com uma variável de tipo E A variável de tipo representa o tipo do elemento public class ArrayList { public ArrayList() {... } public void add(E element) {... }... }
11
Variáveis de Tipo Podem ser instanciadas com nomes de classes ou interfaces ArrayList Não podem usar tipos primitivos ArrayList // Errado! ArrayList // Correto São mais seguras ArrayList accounts1= new ArrayList (); ArrayList accounts2 = new ArrayList(); // BankAccount objects accounts1.add("my savings"); // Compile-time error accounts2.add("my savings"); // Not detected at compile time
12
Exemplo de uma Classe Genérica public class Pair { private T first; private S second; public Pair(T firstElement, S secondElement) { first = firstElement; second = secondElement; } public T getFirst() { return first; } public S getSecond() { return second; } }
13
Java Core Colections Collection – Raiz, representa um grupo de objetos. Set – Coleção sem elementos duplicados ou ordem. List – Coleção ordenada (sequencia), pode ter duplicatas Queue – Fila de objetos, geralmente FIFO Map – Objeto que mapeia chaves para valores
14
Collection Interface Operações Básicas int size(); boolean isEmpty(); boolean contains(Object element); boolean add(E 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
15
Collection Interface Conversão para Arrays Object[] toArray(); T[] toArray(T[] a);
16
Sets Coleção não ordenada de elementos distintos
17
Set Interface Modela a abstração matemática de conjuntos Não adiciona métodos a Collection Apenas proíbe objetos duplicados Faz as operações básicas de conjuntos s1.contains(s2) – retorna verdadeiro se s1 é um subset de s2 s1.addAll(s2) – s1 união de s1 ∨ U s2 s1.retainAll(s2) – s1 interseção de s1 ∧ s2 s1.removeAll(s2) – s1 diferença entre os conjuntos s1e s2 (assimétrica)
18
Implementações de Set
19
List Interface Lista ordenada de elementos (sequência), podem conter duplicatas
20
Usando Listas Métodos baseados em posição E get(int index); E set(int index, E element); //optional boolean add(E element); //optional void add(int index, E element); //optional E remove(int index); //optional boolean addAll(int index, Collection c); //optional Busca int indexOf(Object o); int lastIndexOf(Object o);
21
Usando Listas Range List subList(int from, int to); Iteração ListIterator listIterator(); ListIterator listIterator(int index); Algoritmos sort — ordenamento (merge sort algorithm) shuffle — permutação randômica reverse — reverte ordem da lista rotate — rotaciona todos os elementos etc...
22
Implementações de Listas > List LinkedListArrayList
23
Mapa Contém associações entre chaves e valores
24
Usando Maps //Creating a HashMap Map favoriteColors = new HashMap (); //Adding an association favoriteColors.put("Juliet", Color.PINK); //Changing an existing association favoriteColor.put("Juliet",Color.RED); //Getting the value associated with a key Color julietsFavoriteColor = favoriteColors.get("Juliet"); //Removing a key and its associated value favoriteColors.remove("Juliet");
25
Implementações de Mapas
26
Perguntas ?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.