Você está na página 1de 2

Carto de Referncia

Esta possui o construtor private e os mtodos estticos

java.util.Collection
verso 1.02

Collections.copy(List dest, List src); Collections.fill(List lista, Object obj); Collections.sort(List lista); Collections.shuffle(List lista); Collections.reverse(List lista); Collections.rotate(List lista, int dist);

}}

while (chaves.hasMoreElements()) { chv = chaves.nextElement(); System.out.println(chv + " valor: " + deck.get(chv)); }

Interface Set

No armazena valores duplicados Representao para abstrao matemtica de "Conjunto" public interface Set extends Collection { // Operaes Bsicas int size(); boolean isEmpty(); boolean contains(Object element); boolean add(Object element); // Opcional boolean remove(Object element); // Opcional Iterator iterator(); // Operaes de Construo boolean containsAll(Collection c); boolean addAll(Collection c); // Opcional boolean removeAll(Collection c); // Opcional boolean retainAll(Collection c); // Opcional void clear(); // Opcional // Operaes de Arrays Object[] toArray(); Object[] toArray(Object a[]); } Implementao pela classe HashSet

Interface Iterator

Utilizado para atravessar uma collection do inicio ao fim possvel a remoo segura dos elementos. public interface Iterator { boolean hasNext(); Object next(); void remove(); // Optional } Exemplo utilizando o Iterator: import java.util.*; import java.text.SimpleDateFormat; public class UsaIterator { private Object dado; public void UsaList() { // Exemplo utilizando uma List List lst = new ArrayList(); lst.add("Joo"); lst.add("Manuel"); lst.add("Fernando"); lst.add(new Date()); Iterator indice = lst.iterator(); while (indice.hasNext()) { dado = indice.next(); if (dado instanceof String) System.out.print(dado + " "); else if (dado instanceof Date) System.out.print("nasceram em " + (new SimpleDateFormat("dd/MM/yyyy")).format(dado)); } public void UsaMap() { // Exemplo utilizando uma Map Map nascidos = new TreeMap(); SimpleDateFormat df = new SimpleDateFormat("d/MM/yyy"); try { nascidos.put("Joaquim", df.parse("08/01/1780")); nascidos.put("Manuel", df.parse("23/11/1843")); nascidos.put("Fernando", df.parse("17/08/1966")); } catch (Exception e) { e.printStackTrace(); } Iterator it = nascidos.keySet().iterator(); while (it.hasNext()) { dado = it.next(); System.out.println(dado + " - " + nascidos.get(dado)); } }}

Estrutura

Interface Set List Map

Implementation classes HashSet TreeSet ArrayList LinkedList HashMap TreeMap

Hashing um mapeamento entre um valor chave e um dado item, isso promove uma forma eficinte de consulta.

Implementao pela classe TreeSet

No java as estruturas de dados so as seguintes: Vector BitSet Stack Queue Hashtable

fornece um conjunto ordenado, eliminando entradas duplas

Exemplo para ambas: import java.util.*; public class TstSet { private String nomes[] = {"Frank", "Dean", "Samis", "David", "Frank", "Samis"}; public TstSet() { List agenda = new ArrayList(Arrays.asList(nomes)); System.out.println("Original: " + agenda); // Set no ordenado Set set = new HashSet(agenda); System.out.print("No Duplicados: "); mstSet(set.iterator()); // Set ordenado Set setOrd = new TreeSet(agenda); System.out.print("Ordenados: "); mstSet(setOrd.iterator()); System.out.print("Antes Frank: "); mstSet(setOrd.headSet("Frank").iterator()); } public void mstSet(Iterator indice) { while (indice.hasNext()) System.out.print(indice.next() + " "); System.out.println(); }}

Fundamentos

As colees so sempre referenciadas como framework. Fornecem um conjunto bem defindo de interfaces e classes para armazenar e manipular grupos de objetos. Possui uma API para muitos dos tipos de dados abstratos e estruturas de tratamento familiares: map, set, list, tree, array, hashtable, etc. A Interface java.util.Collection define a collection basica Possui mtodos que permite adicionar, remover, procurar e contar os elementos.

public interface Collection { // Operaes Bsicas int size(); boolean isEmpty(); boolean contains(Object element); boolean add(Object element); // Opcional boolean remove(Object element); // Opcional Iterator iterator(); // Operaes de Construo boolean containsAll(Collection c); boolean addAll(Collection c); // Opcional boolean removeAll(Collection c); // Opcional boolean retainAll(Collection c); // Opcional void clear(); // Opcional // Operaes de Arrays Object[] toArray(); Object[] toArray(Object a[]); }

Interface Enumeration

No existe um suporte para remover com Enumeration. Usando a Hashtable com Enumeration: import java.util.*; public class TstHash { private final String valores[] = {"As", "Dois", "Trs", "Quatro", "Cinco", "Seis", "Sete", "Valete", "Dama", "Rei"}; private Hashtable deck; public TstHash() { deck = new Hashtable(); for (int i = 0; i < valores.length; i++) if (i > 6) // Atribui o valor .5 as figuras deck.put(valores[i], new Double(0.5)); else deck.put(valores[i], new Double(i+1)); Enumeration chaves = deck.keys(); Object chv;

Interface List

Tem uma ordem com acesso indexado Admite duplicados public interface List extends Collection { // Acesso Posicional Object get(int index); Object set(int index, Object element); void add(int index, Object element); Object remove(int index);

Auxliada pela classe Collections

// Opcional // Opcional // Opcional

abstract boolean addAll(int index, Collection c); // Opcional // Pesquisa int indexOf(Object o); int lastIndexOf(Object o); // Interao ListIterator listIterator(); ListIterator listIterator(int index); // Viso de Intervalo List subList(int from, int to);

Implementao pela classe Vector

Uma vez que o tamanho do array definido no possvel mudar o tamanho deste. A classe Vector supre esta necessidade. A Vector realoca a si mesmo automticamente.

Vector vt = new Vector(3, 10); Esta instruo descreve que vt possui uma capacidade inicial de trs, e cresce em aumento de 10 a cada relocao efetuada, por exemplo ao se adicionar o quarto elemento. Depois de realocado a capacidade do vector se torna a capacidade inicial + a capacidade aumentada.

Implementao pela classe ArrayList

Usa um array para o armazenamento. Um armazenamento de array so geralmente mais rpidos mas ele possui limitaes como, no inserir ou remover itens no meio da lista. possvel acessar qualquer elemento aleatoriamente.

Vector(int initialCapacity); Vector(int initialCapacity, int capacitIncrement); Mtodos: Vector v = new Vector(1); cria um vetor com 1 elemento v.addElement("Um a mais"); adiciona um obj v.insertElementAt("OutroDepois", 1); adiciona obj na 2 pos v.setElementAt("Modificando o primeiro", 0); modifica o 1 obj v.removeElement("Um a mais"); remove o obj determinado v.firstElement(); obtm o primeiro obj v.lastElement(); obtm o ltimo obj v.isEmpty(); verifica se est vazio v.containts(chave); v.indexOf(Um a mais); verifica a existncia de determinado obj v.trimToSize(); ajusta o tamanho para a qtd de obj v.size(); retorna o tamanho v.setSize(3); faz o tamanho ser 3 v.trimToSize(); v.capacity(); verifica a capacidade

import java.util.*; public class TstMap { private final String valores[] = {"s", "Dois", "Trs", "Quatro", "Cinco", "Seis", "Sete", "Valete", "Dama", "Rei"}; public TstMap() { Map deck = new HashMap(); for (int i = 0; i < valores.length; i++) if (i > 6) deck.put(valores[i], new Double(0.5)); else deck.put(valores[i], new Double(i+1)); Iterator chaves = deck.keySet().iterator(); System.out.println("Resultado do Mapa: "); while (chaves.hasNext()) { Object chave = chaves.next(); System.out.println(chave + " valor: " + deck.get(chave)); } System.out.println("Pesquisa o Rei: " + deck.get("Rei")); }} Implementao pela classe TreeMap Usa tree para armazenagem fornecendo um map ordenado.

import java.util.*; public class TestArrayList { public static void main(String args[]) { List list = new ArrayList(); list.add("Bill"); list.add("Henrry Ford"); list.add("Bill"); list.add("Brian"); list.add("Gates"); System.out.println(list); System.out.println("4: " + list.get(4)); System.out.println("1: " + list.get(1)); } } Implementao pela classe LinkedList

O mesmo exemplo anterior pode ser refeito trocando a linha

Map deck = new HashMap(); Map deck = new TreeMap();

Interfaces Sorted

Permite gerar colees ordenadas Interface SortedSet public interface SortedSet extends Set { SortedSet subSet(Object fromElement, Object toElement); SortedSet headSet(Object toElement); SortedSet tailSet(Object fromElement); Object first(); Object last(); Comparator comparator(); } Interface SortedMap 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(); }

Permite a adio e remoo em qualquer posio possvel acessar somente os elementos seqncialmente. Pode-se tratar a LinkedList como uma pilha ou fila.

Mtodos: void addFirst(Object o); adiciona o objeto na primeira pos. void addLast(Object o); adiciona o objeto na ltima pos. Object getFirst(); obtm o objeto da primeira pos. Object getLast(); obtm o objeto da ltima pos. Object removeFirst(); remove o objeto da primeira pos. Object removeLast(); remove o objeto da ltima pos. FILA: Referenciada como FIFO (First In - First Out). import java.util.*; public class TestQueue { public static void main(String args[]) { LinkedList queue = new LinkedList(); queue.addFirst("Bill Gates"); queue.addFirst("Steve Jobs"); queue.addFirst("James Gosling"); System.out.println(queue); queue.removeLast(); System.out.println(queue); }} PILHA: Referenciada como LIFO (Last In - First Out). import java.util.*; public class TestStack { public static void main(String args[]) { LinkedList stack = new LinkedList(); stack.addLast("Bill Gates"); stack.addLast("Steve Jobs"); stack.addLast("James Gosling"); System.out.println(stack); stack.removeFirst(); System.out.println(stack); }}

Interface Map

No admite chaves duplicadas, os valores podem ser duplicados Cada chave mapeia um nico valor 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); }

Observaes

No uma extenso da interface Collection Possui sua prpria hierarquia. null uma entrada vlida, mas s permitido uma nica vez.

Implementao pela classe HashMap

Usa hashing para armazenamento.

10/2004 Fernando Anselmo

Você também pode gostar