Your SlideShare is downloading. ×
0
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Slides collections
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Slides collections

299

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
299
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programação para SistemasCorporativos Cassiano Gunji UNIBAN 2º Semestre - 2012 1
  • 2. 2
  • 3. Estruturas de Dados Estruturas de dados estáticas:  Variáveis;  Vetores (arrays). Estruturas de dados dinâmicas:  Lista ligada;  Fila;  Pilha;  Árvore. 3
  • 4. Lista LigadaPrimeiro Último nó nó D D ... D 4
  • 5. Lista Ligada O nó é definido por uma classe com atributos e um ponteiro para outro nó (definido pela mesma classe); A Lista Ligada implementa métodos para manipular sua lista. Por exemplo:  Adicionar um novo nó;  Pesquisar por um nó;  Retirar um nó. 5
  • 6. Árvore de Pesquisa Binária Primeiro nó D D D D 6
  • 7. Árvore de Pesquisa Binária Cada nó possui dois, um ou nenhum nó filho; Inserção 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 percorrer em ordem: [27, 13, 42, 33, 17, 48, 6] 7
  • 8. Árvore de Pesquisa Binária 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.  Pós-ordem.  Percorra sub-árvore esquerda;  Percorra a sub-árvore direita;  Processe o nó. 8
  • 9. Implementando um Nó de ListaLigadapublic class No public 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. Motivação 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. Métodos Genéricos Se o método imprime não usar características específicas de dado, então um único método genérico pode ser escrito:  public static <E> void imprime (E dado) {...} Métodos genéricos podem usar um parâmetro de tipo como retorno:  public static <E> E maior (E dado1, E dado2) {...} O tipo E, nos dois casos, assume o tipo dos parâmetros dos métodos. 12
  • 13. Classes Genéricaspublic class ClasseGenerica <E>{ ... public static void imprime (E dado) {...} public static E maior (E dado1, E dado2) {...} ...} 13
  • 14. Instanciando Classes Genéricas...ClasseGenerica <String> objetoTexto = new ClasseGenerica <String>();ClasseGenerica <Integer> objetoInteiro = new ClasseGenerica <Integer>();ClasseGenerica objeto = new ClasseGenerica();... 14
  • 15. (java.util) 15
  • 16. API Collections Collection List Set Array DimensionávelLinkedList ArrayList HashSet SortedSet Tabela de ListaLigada Hash TreeSet Map Árvore Balanceada HashMap SortedMap Iterator Árvore Tabela de Balanceada ListIterator Hash TreeMap 16
  • 17. Comentários sobre Estruturas de Dados Arrays  Acesso a um determinado elemento através de seu índice é feito em tempo constante.  Inserção e exclusão de novos elementos depende da quantidade de elementos já existente no array.  Permite uso de busca binária, se o array estiver classificado, caso contrário, exige busca seqüencial. Listas Ligadas  Inserção e exclusão nas extremidades é feita em tempo constante(pilhas e filas).  Busca seqüencial. Tabelas de Hash  Busca, inserção e exclusão praticamente em tempo constante.  Os elementos não são classificados. Árvores Binárias Balanceadas de Busca  Busca, inserção e exclusão em tempo logarítmico.  Os elementos são classificados. 17
  • 18. Comentários sobre Estruturas de Dados Listas (LinkedList e ArrayList)  Permitem duplicidade de elementos.  A ordem de inserção dos elementos é mantida. Conjuntos (HashSet e TreeSet)  Não permitem duplicidade de elementos.  A ordem de inserção dos elementos não é mantida. Mapas (HashMap e TreeMap)  Os elementos são associados a uma chave.  O acesso aos elementos é feito através da chave, e não através do próprio elemento.  Não há duplicidade de chaves. 18
  • 19. Interface Collection <E> (java.util.Collection) Alguns Métodos  boolean add ( E elemento ) Adiciona um elemento à coleção.  void clear ( ) Remove todos os elementos da coleção.  boolean contains ( Object elemento ) Retorna true se o elemento estiver contido na coleção.  boolean isEmpty ( ) Retorna true se a coleção estiver vazia.  Iterator <E> iterator ( ) Retorna um iterador para a coleção.  boolean remove ( Object elemento ) Remove um elemento da coleção e o retorna.  int size ( ) Retorna a quantidade de elementos na coleção.  Object [ ] toArray ( ) Retorna os elementos da coleção na forma de um array. 19
  • 20. Exemplo Interface Listimport java.util.*;public class ExemploList { public static void main(String[] args) { List<String> lista = new LinkedList<String>(); //List<String> lista = new ArrayList<String>(); 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 posição " + lista.indexOf(nome)); System.out.println(lista.size() + " - " + lista); }} 20
  • 21. Classe LinkedList<E> (java.util.LinkedList) Alguns Construtores  LinkedList ( )  LinkedList ( Collection c ) Alguns Métodos  void add ( int índice, E elemento ) Adiciona um elemento à lista.  void addFirst ( E elemento ) Adiciona um elemento no início da lista.  void addLast ( E elemento ) Adiciona um elemento no final da lista.  E element ( ) Retorna, mas não exclui, o elemento no início da lista.  E get ( int índice ) Retorna um elemento da lista. 21
  • 22. Classe LinkedList<E> (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 ocorrência do elemento, -1 se o elemento não estiver contido na lista.  ListIterator<E> 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<String> lista = new LinkedList<String>(); 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 posição " + lista.indexOf(nome)); }} 23
  • 24. Percurso em uma LinkedListimport java.util.*;public class PercursoLinkedList { public static void main(String[] args) { LinkedList<String> lista = new LinkedList<String>(); lista.add("Maria"); lista.add("José"); lista.add("Joaquim"); // Percurso do início para o final Iterator<String> item = lista.iterator(); while (item.hasNext()) { System.out.println(item.next()); } for (String elemento : lista) { System.out.println(elemento); } // Percurso do final para o início int tamanho = lista.size(); ListIterator<String> itemReverso = lista.listIterator(tamanho); while (itemReverso.hasPrevious()) { System.out.println(itemReverso.previous()); } }} 24
  • 25. Classe ArrayList<E> (java.util.ArrayList) Alguns Construtores  ArrayList ( )  ArrayList ( int capacidadeInicial ) Alguns Métodos  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 ocorrência do elemento, -1 se o elemento não 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<E> (java.util.HashSet) Alguns Construtores  HashSet ( )  HashSet ( int capacidadeInicial ) Alguns Métodos  boolean add ( E elemento ) Adiciona um elemento à coleção.  boolean contains ( Object elemento ) Retorna true se o elemento estiver contido na coleção.  boolean isEmpty ( ) Retorna true se a coleção estiver vazia.  Iterator <E> iterator ( ) Retorna o iterador da coleção  boolean remove ( Object elemento ) Remove o elemento da coleção  int size ( ) Retorna a quantidade de elementos da coleção 26
  • 27. Exemplo HashSetimport java.util.*;public class ExemploHashSet { public static void main(String[] args) { HashSet<String> conjunto = new HashSet<String>(); conjunto.add("Maria"); conjunto.add("José"); conjunto.add("Joaquim"); conjunto.add("Maria"); System.out.println("Possui " + conjunto.size() + " elementos"); // Percurso em ordem INDETERMINADA Iterator<String> item = conjunto.iterator(); while (item.hasNext()) { System.out.println(item.next()); } }} 27
  • 28. Classe TreeSet<E> (java.util.TreeSet) Alguns Construtores  TreeSet ( )  TreeSet ( Comparator comparador ) Alguns Métodos  boolean add ( E elemento ) Adiciona um elemento à coleção.  void clear ( ) Remove todos os elementos da coleção.  boolean contains ( Object elemento ) Retorna true se o elemento estiver contido na coleção.  E first ( ) Retorna o primeiro elemento da coleção.  boolean isEmpty ( ) Retorna true se a coleção estiver vazia. 28
  • 29. Classe TreeSet<E> (java.util.TreeSet)  Iterator <E> iterator ( ) Retorna o iterador da coleção  E last ( ) Retorna o último elemento da coleção.  boolean remove ( Object elemento ) Remove o elemento da coleção  int size ( ) Retorna a quantidade de elementos da coleção 29
  • 30. Exemplo TreeSetimport java.util.*;public class ExemploTreeSet { public static void main(String[] args) { TreeSet<String> conjunto = new TreeSet<String>(); conjunto.add("Maria"); conjunto.add("José"); conjunto.add("Joaquim"); conjunto.add("Maria"); System.out.println("Possui " + conjunto.size() + " elementos"); // Percurso em ordem crescente Iterator<String> 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 não seja encontrada. O elemento deve ser inserido na posição (I + 1) * -1 para a lista continuar ordenada.  Object min (Collection coleção ) Retorna o menor elemento da lista.  Object max (Collection coleção ) 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 posições de uma lista com um determinado valor.  void reverse ( List lista ) Inverte a ordem dos elementos na lista. 31
  • 32. Interface Map<K, V> (java.util.Map) Alguns Métodos  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 <Map.Entry <K, V>> entrySet( ) Retorna um Set contendo os valores mapeados.  V get ( Object chave ) Retorna o elemento mapeado pela chave. Ou null caso não exista.  boolean isEmpty ( ) Retorna true se o mapa estiver vazio.  Set <K> 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<K, V> (java.util.Map) Alguns Métodos  V remove (Object chave) Remove um mapeamento do mapa.  int size ( ) Retorna o número 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", "Melão", "Goiaba"}; public static void main(String[] args) { Map<Integer, Integer> mapa = new HashMap<Integer, Integer>(); 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<Integer> carrinho = mapa.keySet(); Iterator<Integer> 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<K, V> (java.util.HashMap) Alguns Construtores  HashMap ( )  HashMap ( int capacidadeInicial ) Alguns Métodos  void clear ( ) Remove todos os elementos da coleção.  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.  <V> get ( Object chave ) Retorna o elemento mapeado pela chave. Ou null caso não exista.  boolean isEmpty ( ) Retorna true se a coleção estiver vazia. 35
  • 36. Classe HashMap<K, V> (java.util.HashMap)  <V> put ( K chave, V valor ) Insere um mapeamento na coleção.  boolean remove ( Object chave ) Remove o elemento mapeado pela chave.  int size ( ) Retorna a quantidade de elementos da coleção.  Collection <V> values ( ) Retorna uma coleção contendo os valores da estrutura. 36
  • 37. Classe TreeMap<K, V> (java.util.TreeMap) Alguns Construtores  TreeMap ( )  TreeMap ( Comparator comparador ) Alguns Métodos  void clear ( ) Remove todos os elementos da coleção.  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.  <E> firstKey ( ) Retorna a primeira chave do mapa.  <V> get ( Object chave ) Retorna o elemento mapeado pela chave. Ou null caso não exista.  <E> lastKey ( ) Retorna a última chave do mapa. 37
  • 38. Classe TreeMap<K, V> (java.util.TreeMap)  <V> put ( K chave, V valor ) Insere um mapeamento na coleção.  boolean remove ( Object chave ) Remove o elemento mapeado pela chave.  int size ( ) Retorna a quantidade de elementos da coleção.  Collection <V> values ( ) Retorna uma coleção contendo os valores do mapa. 38
  • 39. Classe Properties (java.util.Properties) Construtores  Properties ( )  Properties ( Properties valoresPadrão) Alguns Métodos  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 valorPadrão ) Retorna o valor associado a uma chave ou valorPadrão caso a chave não seja encontrada.  void load ( InputStream entrada ) Carrega um conjunto de propriedades de uma entrada.  void store ( OutputStream saída, String comentário ) Salva o conjunto de propriedades em uma saída. 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 Properties try { 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

×