1 Curso de Linguagem Java Marcos Mendes 2º Semestre - 2007.

Post on 22-Apr-2015

103 views 1 download

Tags:

transcript

1

Curso de Linguagem Java

Marcos Mendes

2º Semestre - 2007

2

Java Collections Framework (java.util)

3

API Collections

List

LinkedList ArrayList

Set

HashSet SortedSet

Map

HashMap SortedMap

Collection

TreeSet

TreeMap

Tabela de Hash

Tabela de Hash

Árvore Balanceada

Árvore Balanceada

Array Dimensionável

Lista Ligada

Iterator

ListIterator

4

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.

5

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.

6

Interface Collection <E> (java.util.Collection)

Alguns Métodos boolean addadd ( E elemento )

Adiciona um elemento à coleção. void clearclear ( )

Remove todos os elementos da coleção. boolean containscontains ( Object elemento )

Retorna true se o elemento estiver contido na coleção. boolean isEmptyisEmpty ( )

Retorna true se a coleção estiver vazia. Iterator <E> iteratoriterator ( )

Retorna um iterador para a coleção. boolean removeremove ( Object elemento )

Remove um elemento da coleção e o retorna. int sizesize ( )

Retorna a quantidade de elementos na coleção. Object [ ] toArraytoArray ( )

Retorna os elementos da coleção na forma de um array.

7

Exemplo Interface Listimport java.util.*;public class ExemploList {

public static void main(String[] args) {ListList<String> lista = new LinkedListLinkedList<String>();//ListList<String> lista = new ArrayListArrayList<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);

}}

8

Classe LinkedList<E> (java.util.LinkedList)

Alguns Construtores LinkedList ( ) LinkedList ( Collection c )

Alguns Métodos void addadd ( int índice, E elemento )

Adiciona um elemento à lista. void addFirstaddFirst ( E elemento )

Adiciona um elemento no início da lista. void addLastaddLast ( E elemento )

Adiciona um elemento no final da lista. E elementelement ( )

Retorna, mas não exclui, o elemento no início da lista. E getget ( int índice )

Retorna um elemento da lista.

9

Classe LinkedList<E> (java.util.LinkedList)

E getFirstgetFirst ( )Retorna o primeiro elemento da lista.

E getLastgetLast ( )Retorna o último elemento da lista.

int indexOfindexOf ( Object elemento )Retorna o índice da primeira ocorrência do elemento, -1 se o elemento não estiver contido na lista.

ListIterator<E> listIteratorlistIterator ( )Retorna o iterador da lista.

E removeremove ( int índice )Remove um elemento da lista e o retorna.

E removeFirstremoveFirst ( )Remove o primeiro elemento da lista e o retorna.

E removeLastremoveLast ( )Remove o último elemento da lista e o retorna.

E setset ( int índice, E elemento )Troca um elemento na lista.

10

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));}

}

11

Percurso em uma LinkedListimport java.util.*;public class ExemploLinkedList {

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 finalIterator<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ícioint tamanho = lista.size();ListIterator<String> itemReverso = lista.listIterator(tamanho);while (itemReverso.hasPrevious()) {

System.out.println(itemReverso.previous());}

}}

12

Classe ArrayList<E> (java.util.ArrayList)

Alguns Construtores ArrayList ( ) ArrayList ( int capacidadeInicial )

Alguns Métodos void addadd ( int índice, E elemento )

Adiciona um elemento à lista. E getget ( int índice )

Retorna um elemento da lista. int indexOfindexOf ( Object elemento )

Retorna o índice da primeira ocorrência do elemento, -1 se o elemento não estiver contido na lista.

E removeremove ( int índice )Remove um elemento da lista e o retorna.

E setset ( int índice, E elemento )Troca um elemento na lista.

13

Classe HashSet<E> (java.util.HashSet)

Alguns Construtores HashSet ( ) HashSet ( int capacidadeInicial )

Alguns Métodos boolean addadd ( E elemento )

Adiciona um elemento à coleção. boolean containscontains ( Object elemento )

Retorna true se o elemento estiver contido na coleção. boolean isEmptyisEmpty ( )

Retorna true se a coleção estiver vazia. Iterator <E> iteratoriterator ( )

Retorna o iterador da coleção boolean removeremove ( Object elemento )

Remove o elemento da coleção int sizesize ( )

Retorna a quantidade de elementos da coleção

14

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// Percurso em ordem INDETERMINADAIterator<String> item = conjunto.iterator();while (item.hasNext()) {

System.out.println(item.next());}

}}

15

Classe TreeSet<E> (java.util.TreeSet)

Alguns Construtores TreeSet ( ) TreeSet ( Comparator comparador )

Alguns Métodos boolean addadd ( E elemento )

Adiciona um elemento à coleção. void clearclear ( )

Remove todos os elementos da coleção. boolean containscontains ( Object elemento )

Retorna true se o elemento estiver contido na coleção. E firstfirst ( )

Retorna o primeiro elemento da coleção. boolean isEmptyisEmpty ( )

Retorna true se a coleção estiver vazia.

16

Classe TreeSet<E> (java.util.TreeSet)

Iterator <E> iteratoriterator ( )Retorna o iterador da coleção

E lastlast ( )Retorna o último elemento da coleção.

boolean removeremove ( Object elemento )Remove o elemento da coleção

int sizesize ( )Retorna a quantidade de elementos da coleção

17

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// Percurso em ordem crescenteIterator<String> item = conjunto.iterator();while (item.hasNext()) {

System.out.println(item.next());}

}}

18

Classe Collections (java.util.Collections)

void sortsort ( List lista )Classifica os elementos de uma lista .

int binarySearchbinarySearch ( 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 (-1 * -I) para a lista continuar ordenada.

Object minmin (Collection coleção )Retorna o menor elemento da lista.

Object maxmax (Collection coleção )Retorna o maior elemento da lista.

void copycopy ( List para, List de)Copia todos os elementos de uma lista para outra.

void fillfill ( List lista, Object valor )Define todas as posições de uma lista com um determinado valor.

void reversereverse ( List lista )Inverte a ordem dos elementos na lista.

19

Interface Map<K, V> (java.util.Map)

Alguns Métodos void clearclear ( )

Remove todos os mapeamentos do mapa. boolean containsKeycontainsKey ( Object chave )

Retorna true se há algum elemento mapeado pela chave. boolean containsValuecontainsValue ( Object valor )

Retorna true se há alguma chave mapeando o valor. Set <Map.Entry <K, V>> entrySetentrySet( )

Retorna um Set contendo os valores mapeados. V getget ( Object chave )

Retorna o elemento mapeado pela chave. Ou nll caso não exista.

boolean isEmptyisEmpty ( )Retorna true se o mapa estiver vazio.

Set <K> keySetkeySet ( )Retorna um Set contendo as chaves do mapa.

V putput ( K chave, V valor )Associa um valor a uma chave no mapa.

20

Interface Map<K, V> (java.util.Map)

Alguns Métodos V removeremove (Object chave)

Remove um mapeamento do mapa. int sizesize ( )

Retorna o número de pares chave-valor do mapa. Collection V valuesvalues ( )

Retorna uma Collection contendo os valores do mapa.

21

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));

}}

}

22

Classe HashMap<K, V> (java.util.HashMap)

Alguns Construtores HashMap ( ) HashMap ( int capacidadeInicial )

Alguns Métodos void clearclear ( )

Remove todos os elementos da coleção. boolean containsKeycontainsKey ( Object chave )

Retorna true se há algum elemento mapeado pela chave. boolean containsValuecontainsValue ( Object valor )

Retorna true se há alguma chave mapeando o valor. <V> getget ( Object chave )

Retorna o elemento mapeado pela chave. Ou nll caso não exista.

boolean isEmptyisEmpty ( )Retorna true se a coleção estiver vazia.

23

Classe HashMap<K, V> (java.util.HashMap)

<V> putput ( K chave, V valor )Insere um mapeamento na coleção.

boolean removeremove ( Object chave )Remove o elemento mapeado pela chave.

int sizesize ( )Retorna a quantidade de elementos da coleção.

Collection <V> valuesvalues ( )Retorna uma coleção contendo os valores da estrutura.

24

Classe TreeMap<K, V> (java.util.TreeMap)

Alguns Construtores TreeMap ( ) TreeMap ( Comparator comparador )

Alguns Métodos void clearclear ( )

Remove todos os elementos da coleção. boolean containsKeycontainsKey ( Object chave )

Retorna true se há algum elemento mapeado pela chave. boolean containsValuecontainsValue ( Object valor )

Retorna true se há alguma chave mapeando o valor. <E> firstKeyfirstKey ( )

Retorna a primeira chave do mapa. <V> getget ( Object chave )

Retorna o elemento mapeado pela chave. Ou nll caso não exista.

<E> lastKeylastKey ( )Retorna a última chave do mapa.

25

Classe TreeMap<K, V> (java.util.TreeMap)

<V> putput ( K chave, V valor )Insere um mapeamento na coleção.

boolean removeremove ( Object chave )Remove o elemento mapeado pela chave.

int sizesize ( )Retorna a quantidade de elementos da coleção.

Collection <V> valuesvalues ( )Retorna uma coleção contendo os valores do mapa.

26

Classe Properties (java.util.Properties)

Construtores Properties ( ) Properties ( Properties valoresPadrão)

Alguns Métodos void putput (String chave, String valor)

Define um par chave-valor no conjunto de propriedades. String getPropertygetProperty ( String chave )

Retorna o valor associado a uma chave. String getPropertygetProperty ( String chave, String

valorPadrão )Retorna o valor associado a uma chave ou valorPadrão caso a chave não seja encontrada.

void loadload ( InputStream entrada )Carrega um conjunto de propriedades de uma entrada.

void storestore ( OutputStream saída, String comentário )Salva o conjunto de propriedades em uma saída.

27

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("nomeArquivoPropriedadesnomeArquivoPropriedades");

dados.load(fis);} catch(FileNotFoundException e) {

e.printStackTrace();} catch (IOException e) {

e.printStackTrace();}String driver = dados.getProperty("jdbcDriverjdbcDriver");String banco = dados.getProperty("urlBancourlBanco");String usuario = dados.getProperty("usuarioBancousuarioBanco");String senha = dados.getProperty("senhaBancosenhaBanco");

28

Exemplo utilizando Properties try {

Class.forName(driver); Connection con = DriverManager.getConnection(banco, usuario, senha); Statement st = con.createStatement ( ); String sql = "SELECT * FROM nomeTabelanomeTabela ORDER BY nomeCamponomeCampo"; 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