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