slides collections

41
Programação para Sistemas Corporativos Cassiano Gunji UNIBAN 2º Semestre - 2012 1

Upload: stefanycrispim

Post on 26-May-2015

306 views

Category:

Documents


1 download

TRANSCRIPT

  • 1. Programao para SistemasCorporativos Cassiano Gunji UNIBAN 2 Semestre - 20121

2. 2 3. Estruturas de Dados Estruturas de dados estticas: Variveis; Vetores (arrays). Estruturas de dados dinmicas: Lista ligada; Fila; Pilha; rvore. 3 4. Lista LigadaPrimeiro ltimo nnDD ...D4 5. Lista Ligada O n definido por uma classe com atributos e umponteiro para outro n (definido pela mesma classe); A Lista Ligada implementa mtodos para manipularsua lista. Por exemplo: Adicionar um novo n; Pesquisar por um n; Retirar um n. 5 6. rvore de Pesquisa Binria Primeiro n D D D D 6 7. rvore de Pesquisa Binria Cada n possui dois, um ou nenhum n filho; Insero de um novo n: Se rvore vazia, insira um novo n; Se o novo n menor que a raiz da rvore atual, insira na sub-rvore esquerda; Se o novo n maior que a raiz da rvore atual, insira na sub-rvore direita; Ex: Inserir os seguintes valores na rvore e percorrerem ordem: [27, 13, 42, 33, 17, 48, 6]7 8. rvore de Pesquisa Binria A rvore pode ser percorrida em: Na ordem; Percorra sub-rvore esquerda; Processe o n; Percorra a sub-rvore direita. Pr-ordem; Processe o n; Percorra sub-rvore esquerda; Percorra a sub-rvore direita. Ps-ordem. Percorra sub-rvore esquerda; Percorra a sub-rvore direita; Processe o n.8 9. Implementando um N de ListaLigadapublic class Nopublic class Lista{{public int dado; private No primeiro;public No prox;}public void inserePrimeiro (int dado) { No aux = new No; aux.dado = dado; aux.prox = primeiro; primeiro = aux; } }9 10. 10 11. Motivao Tarefas semelhantes executadas em tipos diferentes requerem sobrecarga (overload) public static void imprime (double dado) {...} public static void imprime (int dado) {...} public static void imprime (String dado) {...} 11 12. Mtodos Genricos Se o mtodo imprime no usar caractersticasespecficas de dado, ento um nico mtodo genrico pode ser escrito: public static void imprime (E dado) {...} Mtodos genricos podem usar um parmetro de tipo como retorno: public static E maior (E dado1, E dado2) {...} O tipo E, nos dois casos, assume o tipo dos parmetros dos mtodos. 12 13. Classes Genricaspublic class ClasseGenerica {...public static void imprime (E dado) {...}public static E maior (E dado1, E dado2) {...}...} 13 14. Instanciando Classes Genricas...ClasseGenerica objetoTexto = newClasseGenerica ();ClasseGenerica objetoInteiro = newClasseGenerica ();ClasseGenerica objeto = new ClasseGenerica();...14 15. (java.util)15 16. API Collections Collection ListSetArray DimensionvelLinkedListArrayList HashSetSortedSet Tabela de ListaLigada Hash TreeSet Map rvore Balanceada HashMapSortedMapIterator rvore Tabela de Balanceada ListIterator HashTreeMap16 17. Comentrios sobre Estruturas de Dados Arrays Acesso a um determinado elemento atravs de seu ndice feito emtempo constante. Insero e excluso de novos elementos depende da quantidade deelementos j existente no array. Permite uso de busca binria, se o array estiver classificado, casocontrrio, exige busca seqencial. Listas Ligadas Insero e excluso nas extremidades feita em tempoconstante(pilhas e filas). Busca seqencial. Tabelas de Hash Busca, insero e excluso praticamente em tempo constante. Os elementos no so classificados. rvores Binrias Balanceadas de Busca Busca, insero e excluso em tempo logartmico. Os elementos so classificados.17 18. Comentrios sobre Estruturas de Dados Listas (LinkedList e ArrayList) Permitem duplicidade de elementos. A ordem de insero dos elementos mantida. Conjuntos (HashSet e TreeSet) No permitem duplicidade de elementos. A ordem de insero dos elementos no mantida. Mapas (HashMap e TreeMap) Os elementos so associados a uma chave. O acesso aos elementos feito atravs da chave, e no atravs doprprio elemento. No h duplicidade de chaves.18 19. Interface Collection (java.util.Collection) Alguns Mtodos boolean add ( E elemento ) Adiciona um elemento coleo. void clear ( ) Remove todos os elementos da coleo. boolean contains ( Object elemento ) Retorna true se o elemento estiver contido na coleo. boolean isEmpty ( ) Retorna true se a coleo estiver vazia. Iterator iterator ( ) Retorna um iterador para a coleo. boolean remove ( Object elemento ) Remove um elemento da coleo e o retorna. int size ( ) Retorna a quantidade de elementos na coleo. Object [ ] toArray ( ) Retorna os elementos da coleo na forma de um array. 19 20. Exemplo Interface Listimport java.util.*;public class ExemploList {public static void main(String[] args) {List lista = new LinkedList();//List lista = new ArrayList();lista.add("Maria");lista.add("Jos");lista.add("Joaquim");System.out.println(lista.size() + " - " + lista);lista.remove("Jos");System.out.println(lista.size() + " - " + lista);System.out.println("Primeiro nome: " + lista.get(0));String nome = "Joaquim";System.out.println(nome + " est na posio " + lista.indexOf(nome));System.out.println(lista.size() + " - " + lista);}}20 21. Classe LinkedList (java.util.LinkedList) Alguns Construtores LinkedList ( ) LinkedList ( Collection c ) Alguns Mtodos void add ( int ndice, E elemento ) Adiciona um elemento lista. void addFirst ( E elemento ) Adiciona um elemento no incio da lista. void addLast ( E elemento ) Adiciona um elemento no final da lista. E element ( ) Retorna, mas no exclui, o elemento no incio da lista. E get ( int ndice ) Retorna um elemento da lista. 21 22. Classe LinkedList(java.util.LinkedList) E getFirst ( ) Retorna o primeiro elemento da lista. E getLast ( ) Retorna o ltimo elemento da lista. int indexOf ( Object elemento ) Retorna o ndice da primeira ocorrncia do elemento, -1 se o elemento no estiver contido na lista. ListIterator listIterator ( ) Retorna o iterador da lista. E remove ( int ndice ) Remove um elemento da lista e o retorna. E removeFirst ( ) Remove o primeiro elemento da lista e o retorna. E removeLast ( ) Remove o ltimo elemento da lista e o retorna. E set ( int ndice, E elemento ) Troca um elemento na lista. 22 23. Exemplo LinkedListimport java.util.*;public class ExemploLinkedList {public static void main(String[] args) { LinkedList lista = new LinkedList(); lista.add("Maria"); lista.addFirst("Jos"); lista.add("Joaquim"); System.out.println(lista.size() + " - " + lista); lista.removeFirst(); System.out.println(lista.size() + " - " + lista); System.out.println("ltimo nome: " + lista.getLast()); String nome = "Jos"; System.out.println(nome + " est na posio " + lista.indexOf(nome));}} 23 24. Percurso em uma LinkedListimport java.util.*;public class PercursoLinkedList {public static void main(String[] args) { LinkedList lista = new LinkedList(); lista.add("Maria"); lista.add("Jos"); lista.add("Joaquim"); // Percurso do incio para o final Iterator item = lista.iterator(); while (item.hasNext()) { System.out.println(item.next()); } for (String elemento : lista) { System.out.println(elemento); } // Percurso do final para o incio int tamanho = lista.size(); ListIterator itemReverso = lista.listIterator(tamanho); while (itemReverso.hasPrevious()) { System.out.println(itemReverso.previous()); }}}24 25. Classe ArrayList(java.util.ArrayList) Alguns Construtores ArrayList ( ) ArrayList ( int capacidadeInicial ) Alguns Mtodos void add ( int ndice, E elemento ) Adiciona um elemento lista. E get ( int ndice ) Retorna um elemento da lista. int indexOf ( Object elemento ) Retorna o ndice da primeira ocorrncia do elemento, -1 se o elementono estiver contido na lista. E remove ( int ndice ) Remove um elemento da lista e o retorna. E set ( int ndice, E elemento ) Troca um elemento na lista. 25 26. Classe HashSet(java.util.HashSet) Alguns Construtores HashSet ( ) HashSet ( int capacidadeInicial ) Alguns Mtodos boolean add ( E elemento ) Adiciona um elemento coleo. boolean contains ( Object elemento ) Retorna true se o elemento estiver contido na coleo. boolean isEmpty ( ) Retorna true se a coleo estiver vazia. Iterator iterator ( ) Retorna o iterador da coleo boolean remove ( Object elemento ) Remove o elemento da coleo int size ( ) Retorna a quantidade de elementos da coleo26 27. Exemplo HashSetimport java.util.*;public class ExemploHashSet {public static void main(String[] args) {HashSet conjunto = new HashSet();conjunto.add("Maria");conjunto.add("Jos");conjunto.add("Joaquim");conjunto.add("Maria");System.out.println("Possui " + conjunto.size() + " elementos");// Percurso em ordem INDETERMINADAIterator item = conjunto.iterator();while (item.hasNext()) {System.out.println(item.next());}}}27 28. Classe TreeSet (java.util.TreeSet) Alguns Construtores TreeSet ( ) TreeSet ( Comparator comparador ) Alguns Mtodos boolean add ( E elemento ) Adiciona um elemento coleo. void clear ( ) Remove todos os elementos da coleo. boolean contains ( Object elemento ) Retorna true se o elemento estiver contido na coleo. E first ( ) Retorna o primeiro elemento da coleo. boolean isEmpty ( ) Retorna true se a coleo estiver vazia.28 29. Classe TreeSet(java.util.TreeSet) Iterator iterator ( )Retorna o iterador da coleo E last ( )Retorna o ltimo elemento da coleo. boolean remove ( Object elemento )Remove o elemento da coleo int size ( )Retorna a quantidade de elementos da coleo 29 30. Exemplo TreeSetimport java.util.*;public class ExemploTreeSet {public static void main(String[] args) { TreeSet conjunto = new TreeSet(); conjunto.add("Maria"); conjunto.add("Jos"); conjunto.add("Joaquim"); conjunto.add("Maria"); System.out.println("Possui " + conjunto.size() + " elementos"); // Percurso em ordem crescente Iterator item = conjunto.iterator(); while (item.hasNext()) {System.out.println(item.next()); }}} 30 31. Classe Collections (java.util.Collections) void sort ( List lista ) Classifica os elementos de uma lista . int binarySearch ( List lista, Object chavePesquisa ) Retorna o ndice I da lista onde o elemento est, ou um valor negativo I caso a chavePesquisa no seja encontrada. O elemento deve ser inserido na posio (I + 1) * -1 para a lista continuar ordenada. Object min (Collection coleo ) Retorna o menor elemento da lista. Object max (Collection coleo ) Retorna o maior elemento da lista. void copy ( List para, List de) Copia todos os elementos de uma lista para outra. void fill ( List lista, Object valor ) Define todas as posies de uma lista com um determinado valor. void reverse ( List lista ) Inverte a ordem dos elementos na lista. 31 32. Interface Map(java.util.Map) Alguns Mtodos void clear ( ) Remove todos os mapeamentos do mapa. boolean containsKey ( Object chave ) Retorna true se h algum elemento mapeado pela chave. boolean containsValue ( Object valor ) Retorna true se h alguma chave mapeando o valor. Set > entrySet( ) Retorna um Set contendo os valores mapeados. V get ( Object chave ) Retorna o elemento mapeado pela chave. Ou null caso no exista. boolean isEmpty ( ) Retorna true se o mapa estiver vazio. Set keySet ( ) Retorna um Set contendo as chaves do mapa. V put ( K chave, V valor ) Associa um valor a uma chave no mapa. 32 33. Interface Map(java.util.Map) Alguns Mtodos V remove (Object chave) Remove um mapeamento do mapa. int size ( ) Retorna o nmero de pares chave-valor do mapa. Collection V values ( ) Retorna uma Collection contendo os valores do mapa. 33 34. Percurso em um Mapimport java.util.*;public class ExemploMap {static final String[] produtos = {"Laranja", "Melo", "Goiaba"};public static void main(String[] args) {Map mapa = new HashMap();mapa.put(1, 5);mapa.put(1, 2);mapa.put(2, 3);System.out.print("O carrinho possui " + mapa.size());System.out.println(" produtos");Set carrinho = mapa.keySet();Iterator p = carrinho.iterator();while (p.hasNext()) {Integer item = p.next();System.out.print("Produto: " + produtos[item]);System.out.println(" Quantidade: " + mapa.get(item));}}} 34 35. Classe HashMap(java.util.HashMap) Alguns Construtores HashMap ( ) HashMap ( int capacidadeInicial ) Alguns Mtodos void clear ( ) Remove todos os elementos da coleo. boolean containsKey ( Object chave ) Retorna true se h algum elemento mapeado pela chave. boolean containsValue ( Object valor )Retorna true se h alguma chave mapeando o valor. get ( Object chave )Retorna o elemento mapeado pela chave. Ou null caso no exista. boolean isEmpty ( ) Retorna true se a coleo estiver vazia.35 36. Classe HashMap (java.util.HashMap) put ( K chave, V valor )Insere um mapeamento na coleo. boolean remove ( Object chave )Remove o elemento mapeado pela chave. int size ( )Retorna a quantidade de elementos da coleo. Collection values ( )Retorna uma coleo contendo os valores da estrutura.36 37. Classe TreeMap(java.util.TreeMap) Alguns Construtores TreeMap ( ) TreeMap ( Comparator comparador ) Alguns Mtodos void clear ( ) Remove todos os elementos da coleo. boolean containsKey ( Object chave ) Retorna true se h algum elemento mapeado pela chave. boolean containsValue ( Object valor ) Retorna true se h alguma chave mapeando o valor. firstKey ( )Retorna a primeira chave do mapa. get ( Object chave )Retorna o elemento mapeado pela chave. Ou null caso no exista. lastKey ( ) Retorna a ltima chave do mapa.37 38. Classe TreeMap (java.util.TreeMap) put ( K chave, V valor )Insere um mapeamento na coleo. boolean remove ( Object chave )Remove o elemento mapeado pela chave. int size ( )Retorna a quantidade de elementos da coleo. Collection values ( )Retorna uma coleo contendo os valores do mapa. 38 39. Classe Properties (java.util.Properties) Construtores Properties ( ) Properties ( Properties valoresPadro) Alguns Mtodos void put (String chave, String valor) Define um par chave-valor no conjunto de propriedades. String getProperty ( String chave ) Retorna o valor associado a uma chave. String getProperty ( String chave, String valorPadro ) Retorna o valor associado a uma chave ou valorPadro caso a chave no seja encontrada. void load ( InputStream entrada ) Carrega um conjunto de propriedades de uma entrada. void store ( OutputStream sada, String comentrio ) Salva o conjunto de propriedades em uma sada. 39 40. Exemplo utilizando Propertiesimport java.sql.*;import java.util.*;import java.io.*;public class ExemploProperties {public static void main ( String args [ ] ) { Properties dados = new Properties(); try { FileInputStream fis = new FileInputStream("nomeArquivoPropriedades"); dados.load(fis); } catch(FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String driver = dados.getProperty("jdbcDriver"); String banco = dados.getProperty("urlBanco"); String usuario = dados.getProperty("usuarioBanco"); String senha = dados.getProperty("senhaBanco"); 40 41. Exemplo utilizando Propertiestry {Class.forName(driver);Connection con = DriverManager.getConnection(banco, usuario, senha);Statement st = con.createStatement ( );String sql = "SELECT * FROM nomeTabela ORDER BY nomeCampo";ResultSet rs = st.executeQuery ( sql );while ( rs.next() ) {System.out.println( rs.getString(1) + rs.getString(2) );}} catch (Exception e) {System.out.println ( e );}}jdbcDriver=com.mysql.jdbc.Driver}urlBanco=jdbc:mysql://127.0.0.1:3306/uniban usuarioBanco=root senhaBanco=admin 41