1 coleções em java - parte 2 flávia falcão. 2 visão geral : interfaces principais collection...

Post on 07-Apr-2016

229 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Coleções em Java - Parte 2

Flávia Falcão

2

Visão Geral : Interfaces Principais

Collection Set List Map SortedSet SortedMap

3

Collection Interface Collection Um grupo de Objetos Metodos principais:

Boolean add(Object); Boolean remove(Object) Int size(); Boolean isEmpty() Boolean contains(Object) Iterator iterator()

4

List Interface List extends Collection Representa uma seqüência de

Objetos È possível acessa-los através de índice

Elementos duplicados são permitidos

5

Implementações de List Vector ArrayList LinkedList

Uma implementação de lista duplamente ligada

Melhor performance que o ArrayList quando elementos são inseridos e apagados com freqüência

6

Implementações de List Apesar da implementação Vector

ser a mais antiga é a mais usada Porem as implementações ArrayList e LinkedList são normalmente mais apropriadas para uso geral e apresentam também melhor performance na maioria dos casos

7

Uso de List Criar

List lista = new ArrayList(); // aqui vc pode colocar qualquer implementação de List

Adcionar elementos Lista.add(new Conta(“002”, 2000);

Obter elemento Conta c = ( Conta) lista.get(0);

Exemploimport java.util.ArrayList;import java.util.List;public class ListaExemplo {public static void main(String args[]){

List exemplo = new ArrayList();String nome1 ="ana";String nome2 ="maria";exemplo.add(nome1);exemplo.add(nome2);}}

8

9

Uso de List Listar Elementos:

For(int i=0;i< lista.size();i++){System.out.println(lista.get(i));}OUIterator i = lista.iterator();while(i.hasNext()){System.out.println(i.next());}

10

List Métodos importantes:

Boolean add(Object) Boolean remove(object) Object get(int) Object set(int,object) Int indexOf(Object) Int lastIndexOf(Object)

11

Set Interface Set extends Collection Coleção sem ordem de Objetos Sem elementos duplicados Mesmos métodos que Collection Implementado por:

HashSet TreeSet

12

Uso de Set Criar

Set conjunto = new HashSet(); Adicionar

conjunto.add("Nome"); Obter um elemento

Utilizar iterator

class ConjuntoExemplo{public static void main(String args[]){Set exemplo = new HashSet();String nome1 ="ana";String nome2 ="maria";exemplo.add(nome1);exemplo.add(nome2);

}

13

14

Uso de Set PercorrerIterator i = conjunto.iterator();

while(i.hasNext()){

System.out.print((String)i.next());

}

15

ExemploPublic class ExemploSets{

public static void main(String args[]){ Set set = new HashSet();set.add(“bernardo”);set.add(“elizabete”);set.add(“maria”);set.add(“elizabete”);set.add(“clara”);

System.out.println(set);Set sortedSet = new TreeSet(set);System.out.println(sortedSet);

}}

16

Exercicio Comparação List e Set

Criar uma classe e um método main Criar uma List e um Set e adicionar

elementos String Adicionar elementos String repetidos

a ambas as coleções Verificar o tamanho das duas

coleções – método size()

17

Exercicio( cont.) Obter elementos : o segundo

elemento de cada coleção e imprimi-los.Como obter o segundo elemento do Set?

Imprimir as duas coleções Repetir os passos agora usando um

Objeto Conta ao invés de String. O que é necessário para isso?

18

MapInterface Map Mapeia chaves para valores Cada chave pode ter no máximo um

valor Inserções e pesquisas muito rápidas Implementações

Hashtable HashMap

19

Uso de Map Criar

Map mapa = new HashMap(); Adicionar elementos

Mapa.put(“001”, new Conta(“001”,2000));

Obter elementos Conta c = (Conta) mapa.get(“005”);

20

Iterator Um iterator é um objeto que nos

ajuda a varrer (iterar) uma coleção Um cast como é necessário aqui

porque a cole pode conter qualquer Object e temos que dizer que tipo de coisa estamos esperando para satisfazer o compilador Java Tente compilar o programa sem os casts

21

Como escolher entre as coleçoes? Primeiro, aplicação dita se você vai

precisar de Lista, conjunto ou Mapa Se sua aplicação precisar manter

duplicatas, use Lista Se sua aplicação não precisar manter

duplicatas e não usa chaves use conjuntos

Se a aplicação não precisar manter duplicatas e usa chaves, use Mapa

22

Se precisar de uma lista: Use Vector ou ArrayList se acessar

por indice for com freqüência Use LinkedList se inserir ou remover

elementos do meio com freqüência

23

Se precisar de um conjunto Use HashSet se não precisar de um

conjunto ordenado Use TreeSet se precisar de um conjunto

ordenado

24

Se precisar de um Mapa Use HashMap se não precisar de um

mapa ordenado Use TreeMap se precisar de um mapa

ordenado

25

Exercicio 1 Adicione a seqüência de números

2, 5, 3,9,2,4,3,8,5 a um conjunto(Set) e a uma lista(List), escolhendo a implementação que desejar. Em seguida imprima o conteúdo de ambas as coleções usando iterator e analise as diferenças.

26

Exercício 2 Escreva uma aplicação de dicionário

com três funções: adicionar um termo o dicionário,procurar um termo no dicionário e listar todos os termos existentes em ordem alfabética.Qual classe você usou para implementar a coleção de palavras e por quê?

top related