A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

COLEÇÕES Dilvan Moreira (baseado no livro Big Java)

Apresentações semelhantes


Apresentação em tema: "COLEÇÕES Dilvan Moreira (baseado no livro Big Java)"— Transcrição da apresentação:

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 ?


Carregar ppt "COLEÇÕES Dilvan Moreira (baseado no livro Big Java)"

Apresentações semelhantes


Anúncios Google