Java Coleções. Rodrigo C. de Azevedo
|
|
- Thomaz Chaves Rodrigues
- 8 Há anos
- Visualizações:
Transcrição
1 Java Coleções Rodrigo C. de Azevedo OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate CompTIA Project+ Sun Certified Associate for Java Platform Sun Certified Programmer Java 1.4 Sun Certified Programmer Java 5.0 Sun Certified Web Component Developer Sun Certified Business Component Developer J2EE 1.3 Sun Certified Enterprise Architect [SCEA, Part I] Rodrigo Cabral de Azevedo 2 / 67 1
2 Roteiro Assuntos Método equals() Método hashcode() Família Collection, suas interfaces e classes concretas Interface Comparable e Comparator Classe Collections Família Map, suas interfaces e classes concretas Referências Rodrigo Cabral de Azevedo 3 / 67 Método equals() - Object Ambiente Sendo A e B dois objetos. A implementação de equals() da classe Object tem o mesmo resultado que a comparação direta dos valores de referências na memória, isto é (A == B). Problema Normalmente este não é comportamento desejado. Ao compararmos dois objetos clientes, por exemplo, diremos que um é igual ao outro se seus CPFs forem iguais independente dos valores de referências em memória. Solução Sobrescrever o método equals(). Rodrigo Cabral de Azevedo 4 / 67 2
3 Método equals() - Problema public class Cliente { private String cpf; private String nome; private int id; public String getid() { return id; public String getcpf() { return cpf; public void setcpf(string cpf) { this.cpf = cpf; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public Cliente(String cpf, String nome) { setcpf(cpf); setnome(nome); // Esta classe está herdando o método equals(). public class TestEquals { public static void main(string[] args) { Cliente c1 = new Cliente( , Rodrigo ); Cliente c2 = new Cliente( , Rodrigo ); System.out.println(c1.equals(c2)); // Será retornado falso. System.out.println( c1 == c2 ); // Será retornado falso. Rodrigo Cabral de Azevedo 5 / 67 Método equals() - Contrato Reflexivo Para qualquer valor de x, x.equals(x) sempre tem que ser verdadeiro. Simétrico Para qualquer valor de x e y, se x.equals(y) for verdadeiro, então y.equals(x) também tem ser verdadeiro. Transitivo Para qualquer valor de x, y e z. Se x.equals(y) for verdadeiro e y.equals(z) for verdadeiro então x.equals(z) será verdadeiro. Consistente Para qualquer valor de x e y, o fato de múltiplas invocações deve retornar sempre o mesmo, ao menos que um dos objetos sejam alterados. Valor Nulo Qualquer valor comparado a um valor nulo deve retornar falso. Rodrigo Cabral de Azevedo 6 / 67 3
4 Método equals() - Sobrescrito public class Cliente { private String cpf; private String nome; private int id; public String getid() { return id; public String getcpf() { return cpf; public void setcpf(string cpf) { this.cpf = cpf; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public Cliente(String cpf, String nome) { setcpf(cpf); setnome(nome); public boolean equals(object o) { if (o==null) { return false; if (!(o instanceof Cliente)) { return false; Cliente c = (Cliente)o; return c.getcpf().equals(this.getcpf()); Rodrigo Cabral de Azevedo 7 / 67 Método equals() - Solução public class TestEquals { public static void main(string[] args) { Cliente c1 = new Cliente( , Rodrigo ); Cliente c2 = new Cliente( , Rodrigo ); System.out.println( c1.equals( c2 ) ); // Será retornado true, conforme desejado. // Será retornado false, pois são referências diferentes que representam o mesmo objeto. System.out.println( c1 == c2 ); Rodrigo Cabral de Azevedo 8 / 67 4
5 Método hashcode() Definição O valor hashcode de um objeto é usado por algumas coleções como HashMap, HashSet, Hashtable entre outras e determina onde o objeto deve ser armazenado. Também ajuda na localização do mesmo na coleção. Rodrigo Cabral de Azevedo 9 / 67 Método hashcode() Consistente Múltiplas invocações de um mesmo objeto não modificado deve retornar sempre o mesmo hashcode. Outras Premissas Se 2 objetos ao serem comparados pelo método equals() são iguais, então o hashcode retornado será o mesmo. Não é obrigatório que 2 objetos diferentes quando comparados pelo método equals(), tenham hashcodes diferentes. Rodrigo Cabral de Azevedo 10 / 67 5
6 Método hashcode() Objetos com hashcode iguais Estão na mesma gaveta, portanto é retornado o mesmo valor inteiro (hashcode). Não significa que é o mesmo objeto (apesar de ser uma possibilidade), apenas que está na mesma gaveta. Objetos com hashcode diferentes Estão em outra gaveta, portanto é retornado valores inteiros (hashcode) diferentes. Indica que não há nenhuma possibilidade de serem o mesmo objeto. Analogia com um Arquivo Rodrigo Cabral de Azevedo 11 / 67 Método hashcode() - Sobrescrito public class Cliente { // Parte do código foi intencionalmente ocultada. public boolean equals(object o) { if (o==null) { return false; if (!(o instanceof Cliente)) { return false; Cliente c = (Cliente)o; return c.getcpf().equals(this.getcpf()); /* Uma outra forma mais simples de implementar este método, mas com certeza não é a mais otimizada, é utilizar o Id do banco para representar o hashcode. */ public int hashcode() { return id; Rodrigo Cabral de Azevedo 12 / 67 6
7 Método hashcode() - Sobrescrito public class Pessoa { int id; String nome; public int getid() { return id; public void setid(int id) { this.id = id; public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; // Exemplo do método hashcode gerado pela IDE Eclipse. public int hashcode() { final int PRIME = 31; int result = 1; result = PRIME * result + id; return result; Rodrigo Cabral de Azevedo 13 / 67 Coleções - API Rodrigo Cabral de Azevedo 14 / 67 7
8 Coleções Família Collection Rodrigo Cabral de Azevedo 15 / 67 Collection, List, Set, Sortedset, Queue A família proveniente da interface Collection É formada pelas interfaces List, Queue, Set e SortedSet. Todas as interfaces possuem classes concretas (implementações) que possibilitam a criação de suas instâncias. Rodrigo Cabral de Azevedo 16 / 67 8
9 Regra é-um Regra é-um Também conhecida como regra da Substituição ou principio de Liskov diz que: Sejam duas classes X e Y, onde X é uma generalização de Y. Não pode haver diferenças entre utilizar instâncias de Y ou de X, do ponto de vista dos clientes de X. Rodrigo Cabral de Azevedo 17 / 67 Interface Collection É a interface mais genérica. Pode representar qualquer instância das interfaces Queue, List, Sort e SortedSet. * * Apenas os métodos mais usuais da interface Collection foram representados. Rodrigo Cabral de Azevedo 18 / 67 9
10 Interface Collection Formas de percorrer (até Java 1.4) Através da interface Iterator: public class TestCollection { public static void main (String args[]) { // Interface Collection recebendo instância de uma classe concreta. Collection c = new ArrayList(); c.add( Rodrigo ); c.add( Luciana ); c.add( João ); // Percorrendo a coleção for (Iterator oit = c.iterator(); oit.hasnext();) { String s = (String)oIt.next(); System.out.println(s); Rodrigo Cabral de Azevedo 19 / 67 Interface Collection Formas de percorrer (a partir do Java 1.5) 1ª - Através da interface Iterator: public class TestCollection { public static void main (String args[]) { // Interface Collection recebendo instância de uma classe concreta. Collection<String> c = new ArrayList<String>(); c.add( Rodrigo ); c.add( Luciana ); c.add( João ); // Percorrendo a coleção for (Iterator<String> oit = c.iterator(); oit.hasnext();) { String s = oit.next(); System.out.println(s); Rodrigo Cabral de Azevedo 20 / 67 10
11 Interface Collection Formas de percorrer (a partir do Java 1.5) 2ª - Através do for-each: public class TestCollection { public static void main (String args[]) { // Interface Collection recebendo instância de uma classe concreta. Collection<String> c = new ArrayList<String>(); c.add( Rodrigo ); c.add( Luciana ); c.add( João ); // Percorrendo a coleção for (String s : c) { System.out.println(s); Rodrigo Cabral de Azevedo 21 / 67 Interface List Permite a inserção de objetos duplicados. Respeita a ordem de inserção. Pela Regra da Substituição, podemos afirmar que pode ser percorrida utilizando todas as formas permitidas da Interface Collection. Rodrigo Cabral de Azevedo 22 / 67 11
12 Interface List Formas de percorrer 3ª - Através do for convencional: public class TestList { public static void main (String args[]) { // Interface List recebendo instância de uma classe concreta. List<String> l = new ArrayList<String>(); l.add( Rodrigo ); l.add( Luciana ); l.add( João ); // Percorrendo a coleção for (int i = 0; i < l.size(); i ++) { String s = l.get( i ); System.out.println(s); Rodrigo Cabral de Azevedo 23 / 67 Coleções Família List A família proveniente da interface List É formada atualmente por 3 classes concretas. Estas classes são Vector, LinkedList e ArrayList. Rodrigo Cabral de Azevedo 24 / 67 12
13 Classe Vector Uma das primeiras classes de coleção criadas no Java. É sincronizada (Thead-safety), e, por isso, mais lenta. Rodrigo Cabral de Azevedo 25 / 67 Classe LinkedList Representa uma lista duplamente encadeada. Possui métodos, além dos presentes na interface List, que possibilitam incluir e remover objetos no início e no final da lista. É a mais rápida ao incluir ou remover a um objeto. É mais lenta que o ArrayList para percorrer, no entanto, quando há a necessidade de se incluir/remover muitos objetos é a mais indicada. Rodrigo Cabral de Azevedo 26 / 67 13
14 Classe ArrayList Mais rápida que a classe Vector pois não é sincronizada. Rápida iteração. Escolha esta classe ao invés da LinkedList quando precisar de rápida iteração mas não irá fazer muitas inserções e remoções na Lista. Rodrigo Cabral de Azevedo 27 / 67 Interface Set Não permite a inserção de objetos duplicados. Pela Regra da Substituição, podemos afirmar que pode ser percorrida utilizando todas as formas permitidas da Interface Collection. Diferentemente da List não há outra forma de percorrer a coleção. O método add() retorna true se o objeto ainda não foi incluído, senão nada ocorre e retorna false. Rodrigo Cabral de Azevedo 28 / 67 14
15 Coleções Família Set A família proveniente da interface Set É formada atualmente por 3 classes concretas e 1 interface. Estas classes são HashSet, LinkedHashSet e TreeSet. Em relação a classe TreeSet, é importante observar que é uma implementação da interface SortedSet. Rodrigo Cabral de Azevedo 29 / 67 Classe HashSet Não respeita a ordem de inserção. Não há nenhum tipo de ordenação. Utiliza o hashcode produzido pelo método hashcode() do objeto inserido para melhorar a performance de acesso. Esta classe deve ser utilizada quando não se deseja que haja duplicação e a ordem de inserção não importa. Rodrigo Cabral de Azevedo 30 / 67 15
16 Classe LinkedHashSet Respeita a ordem de inserção. Não há nenhum tipo de ordenação. Esta classe deve ser utilizada quando não se deseja que haja duplicação e a ordem de inserção é importante. Rodrigo Cabral de Azevedo 31 / 67 Classe HashSet e LinkedHashSet Considerações Importantes A classe dos objetos adicionados deve sobrescrever o método hashcode(). A implementação deste método na classe Object pode permitir que um objeto considerado igual a algum inserido na coleção seja adicionado. Desta forma possibilita, incorretamente, a existência de objetos duplicados no Set. Rodrigo Cabral de Azevedo 32 / 67 16
17 Interface SortedSet Garante que a iteração seja ordenado de acordo com ordem natural (Interface Comparable) ou ordenado de acordo com a interface Comparator. Todos os elementos inseridos na interface SortedSet precisam implementar Comparable ou receber uma interface Comparator no momento da criação. Rodrigo Cabral de Azevedo 33 / 67 Classe TreeSet Permite ordenar os objetos de acordo com a ordem natural fornecida pela interface Comparable. Permite ordenar os objetos de acordo com a ordem fornecida pela interface Comparator. Rodrigo Cabral de Azevedo 34 / 67 17
18 Interface Comparable A ordem natural é possível através da utilização do método compareto(...) que compara o objeto corrente com outro ordenando-os de acordo com o comportamento definido neste método. Funcionamento do método compareto(o: T) : int Se o retorno for negativo, isto é, o objeto corrente for menor que o comparado então o objeto corrente virá antes na ordenação da coleção. Se o retorno for positivo, isto é, o objeto corrente for maior que o comparado, então o objeto corrente virá depois na ordenação da coleção. Se o retorno for zero, o objeto poderá vir em qualquer ordem. Nota É extremamente recomendado, mas não obrigatório que a expressão (x.compareto(y)==0) == (x.equals(y)) seja verdadeira. Classes que implementarem a interface Comparable e violam esta condição devem indicar isto claramente. Rodrigo Cabral de Azevedo 35 / 67 Interface Comparable Inúmeras classes, como os Wrappers, Calendar, Date e String, implementam a interface Comparable. Em outras palavras, fornecem informações de como realizar a ordenação natural. Rodrigo Cabral de Azevedo 36 / 67 18
19 Interface Comparable Considerações Importantes Java 1.4 x Java 5.0 Apesar de inúmeras classes na versão 5.0 implementarem a interface Comparable, é recomendado sempre consultar a documentação da linguagem da versão utilizada. Exemplo Até a versão 1.4, a classe Calendar do pacote java.util não implementa a interface Comparable, ou seja, não informa a coleção como deve ser feito a ordenação natural. A partir da versão 5.0 esta interface é implementada. Uma coleção utilizando TreeSet contendo objetos Calendar em versões anteriores a 5.0 deve fornecer uma instância de Comparator* no construtor senão será lançada a exceção ClassCastException. * será vista em seguida Rodrigo Cabral de Azevedo 37 / 67 Interface SorteSet e Comparable public class Pessoa implements Comparable<Pessoa>{ private int id; private String nome; // Imagine que os getters e setters foram gerados. public Pessoa(int id, String nome) { this.setid(id); this.setnome(nome); public int compareto(pessoa p) { return ( this.getid() p.getid() ); public boolean equals(object o) { if (o == null) return false; if (! (o instanceof Pessoa)) return false; Pessoa p = (Pessoa)o; return ( this.getid() == p.getid() ); Rodrigo Cabral de Azevedo 38 / 67 19
20 Interface SorteSet e Comparable import java.util.*; public class Teste { public static void main(string[] args) { SortedSet<Pessoa> listas = new TreeSet<Pessoa>(); Pessoa p1 = new Pessoa(3, "Rodrigo"); Pessoa p2 = new Pessoa(2, "Luciana"); Pessoa p3 = new Pessoa(1, "Joao"); listas.add(p1); listas.add(p2); listas.add(p3); for (Pessoa p : listas) { System.out.println("Nome: " + p.getnome() + " Id: " + p.getid()); Rodrigo Cabral de Azevedo 39 / 67 Interface Comparator É possível fornecer outra ordenação diferente da ordem natural através da utilização do método compare(...) que compara dois objeto ordenando-os de acordo com o comportamento definido neste método. Funcionamento do método compare(o1: T, o2: T) : int Se o retorno for negativo, isto é, o objeto do primeiro argumento for menor que o comparado no segundo argumento então o objeto corrente virá antes na ordenação da coleção. Se o retorno for positivo, isto é, o objeto do primeiro argumento for maior que o comparado no segundo argumento então o objeto corrente virá depois na ordenação da coleção. Se o retorno for zero, o objeto poderá vir em qualquer ordem. Nota É recomendado utilizar a implementação do equals da classe Object, entretanto, segundo a documentação da Sun, a capacidade de identificar se um objeto Comparator é igual a outro pode, em alguns casos, aumentar a performance. Rodrigo Cabral de Azevedo 40 / 67 20
21 Interface SorteSet e Comparator public class PessoaComparator implements Comparator<Pessoa>{ public int compare(pessoa p1, Pessoa p2) { return ( p1.getnome().compareto(p2.getnome() ) ); // Pode-se deixar a implementação do Object para o método equals. Rodrigo Cabral de Azevedo 41 / 67 Interface SorteSet e Comparator import java.util.*; public class Teste { public static void main(string[] args) { SortedSet<Pessoa> listas = new TreeSet<Pessoa>(new PessoaComparator()); Pessoa p1 = new Pessoa(3, "Rodrigo"); Pessoa p2 = new Pessoa(2, "Luciana"); Pessoa p3 = new Pessoa(1, "Joao"); listas.add(p1); listas.add(p2); listas.add(p3); for (Pessoa p : listas) { System.out.println("Nome: " + p.getnome() + " Id: " + p.getid()); Rodrigo Cabral de Azevedo 42 / 67 21
22 Interface Queue Queues normalmente, mas não necessariamente, terão seus elementos obedecendo o formato FIFO (first-in-firstout). As exceções são as priority queues, onde os elementos serão ordenados de acordo com o objeto Comparator passado, ou de acordo com a ordem natural informado pela interface Comparable e as pilhas que ordenam os elementos como LIFO (last-infirst-out). Pela Regra da Substituição, podemos afirmar que pode ser percorrida utilizando todas as formas permitidas da Interface Collection. Rodrigo Cabral de Azevedo 43 / 67 Interface Queue - Métodos element() Obtém o elemento, mas não o remove. Lança a exceção NoSuchElementException se a queue estiver vazia. offer(e o) Insere um elemento na fila. peek() Obtém o elemento, mas não o remove. Retorna null se a queue estiver vazia. poll() Obtém o elemento e o remove da queue, ou retorna null se estiver vazia. remove() Obtém o elemento e o remove da queue. Lança a exceção NoSuchElementException se a queue estiver vazia. Rodrigo Cabral de Azevedo 44 / 67 22
23 Coleções Família Queue A família proveniente da interface Queue É formada atualmente por 2 classes concretas. Estas classes são PriorityQueue e LinkedList. Rodrigo Cabral de Azevedo 45 / 67 Classe LinkedList Esta classe, que também implementa List, implementa Queue, e, ao fazer isso possibilita o comportamento FIFO (first-in-first-out). Além disso, é possível facilmente simular uma pilha com os métodos existentes. Rodrigo Cabral de Azevedo 46 / 67 23
24 Classe PriorityQueue Estas filas ordenam os elementos com o especificado no momento da criação de acordo com o construtor utilizado. É possível utilizar a ordem natural (definida por Comparable) ou a ordem definida pela interface Comparator. Esta classe não permite elementos nulos. Assim como na classe TreeSet, se for informado algum objeto que não é comparável (não implementa Comparable e não for passado um objeto Comparator) será lançada a exceção ClassCastException. Rodrigo Cabral de Azevedo 47 / 67 Interface Queue com PriorityQueue Formas de percorrer public class TestQueue2 { public static void main(string[] args) { Queue<Pessoa> q = new PriorityQueue<Pessoa>(); Pessoa pl = new Pessoa("Rodrigo",2); Pessoa p2 = new Pessoa("Luciana",3); Pessoa p3 = new Pessoa("Jose",1); q.offer(pl); q.offer(p2); q.offer(p3); Pessoa pessoa = null; // Pool retira o elemento da Queue. Ao final a fila estará completamente vazia. while ((pessoa = q.poll())!=null) { System.out.println("Nome: " + pessoa.getnome() + " Id: " + pessoa.getid()); System.out.println("Vazia: " + q.isempty()); Rodrigo Cabral de Azevedo 48 / 67 24
25 Classe Collections Método sort(...) Há 2 variações, uma que ordena uma coleção do tipo List através da ordem natural (implementação de Comparable) e outra que possibilita informar a ordenação desejada através de um objeto Comparator. Nota O método sort() lancará a exceção ClassCastException se a lista utilizada conter objetos não comparáveis da mesma forma que ocorre com a classe TreeSet e a PriorityQueue. Rodrigo Cabral de Azevedo 49 / 67 Classe Collections Método binarysearch(...) A utilização deste método deve respeitar algumas premissas: A lista tem que estar previamente ordenada. Caso tenha sido utilizado na ordenação um objeto Comparator no método sort(), isto é, não foi utilizada a ordem natural, o mesmo tem de ser informado como parâmetro do método. Rodrigo Cabral de Azevedo 50 / 67 25
26 Classe Collections Método binarysearch(...) O método binarysearch() retornará o índice do objeto procurado. Se o objeto procurado não estiver presente na lista, será retornado um inteiro negativo, cujo o valor absoluto representa a posição (ou índice) onde o objeto deveria estar caso existisse na lista somado de 1. Rodrigo Cabral de Azevedo 51 / 67 Classe Collections Exemplo de uso Numa lista hipotética ordenada alfabeticamente, há em seu conteúdo os seguintes nomes: Arnaldo, Bartolomeu, Xavier. Ao tentar buscar o objeto que representa o nome Carla, será retornado um inteiro que representa o índice da posição onde estaria caso o objeto procurado estivesse na lista (2) somado de 1 (2 + 1 = 3) e multiplicado por -1 apresentando como resultado final um número negativo (-3). Rodrigo Cabral de Azevedo 52 / 67 26
27 Classe Collections Método binarysearch(...) Imagine que estamos procurando a letra N entre todas as outras do alfabeto. A busca binária irá subdividir a lista enquanto necessário, verificando se o objeto desejado está antes ou depois do centro da divisão, e, fará este processo até encontrar o objeto procurado. A M Objeto procurado N O R Z Rodrigo Cabral de Azevedo 53 / 67 Classe Collections public class TestCollections { public static void main(string[] args) { List<Pessoa> lista = new ArrayList<Pessoa>(); Pessoa pl = new Pessoa("Rodrigo",2); Pessoa p2 = new Pessoa("Luciana",3); Pessoa p3 = new Pessoa("Jose",1); lista.add(pl); lista.add(p2); lista.add(p3); Comparator<Pessoa> comp = new Comparator<Pessoa>() { public int compare(pessoa p1, Pessoa p2) { return p1.getnome().compareto(p2.getnome()); ; Collections.sort(lista, comp); for ( Iterator<Pessoa> oit = lista.iterator(); oit.hasnext(); ) { Pessoa p = oit.next(); System.out.println(p.getNome()); // Buscar por Luciana Pessoa p = new Pessoa(); p.setnome("luciana"); int pos = Collections.binarySearch(lista,p,comp); p = lista.get(pos); System.out.println("Pessoa [Nome: "+p.getnome()+" Id:" + p.getid()+"]"); Rodrigo Cabral de Azevedo 54 / 67 27
28 Coleção Família Map A família proveniente da interface Map É formada atualmente por 4 classes concretas e 1 interface. Estas classes são HashMap, Hashtable, LinkedHashMap e TreeMap. Em relação a classe TreeMap, é importante observar que é uma implementação da interface SortedSet. Rodrigo Cabral de Azevedo 55 / 67 Interface Map Map permite fornecer uma chave para obter um valor, isto é, associar um objeto a outro. O objeto Map.Entry é obtido através do método entryset() que retorna uma coleção Set deste objeto. A classe Map.Entry possui métodos que possibilitam a obtenção das chaves e dos valores utilizados no Map. Rodrigo Cabral de Azevedo 56 / 67 28
29 Classe HashMap É a mais rápida no acesso (inserção, obtenção e remoção) de elementos. Permite uma chave nula e múltiplos valores nulos. Não respeita a ordem de inserção e utiliza o resultado do método hashcode() para definir uma ordem otimizada. Rodrigo Cabral de Azevedo 57 / 67 Interface Map com HashMap Formas de percorrer public class TestHashMap { public static void main(string[] args) { Map<String, Pessoa> omap = new HashMap<String, Pessoa>(); Pessoa p1 = new Pessoa("Rodrigo",2); Pessoa p2 = new Pessoa("Luciana",3); Pessoa p3 = new Pessoa("Jose",1); omap.put("professor",p1); omap.put("aluno",p2); omap.put("diretor",p3); Set<String> chaves = omap.keyset(); for (String s : chaves) { Pessoa valor = omap.get(s); System.out.println("Chave: " + s + " Valor: " + valor.getnome()); Rodrigo Cabral de Azevedo 58 / 67 29
30 Interface Map com HashMap/Entry Formas de percorrer public class TesteEntry { public static void main(string[] args) { Map<String, Pessoa> omap = new HashMap<String, Pessoa>(); Pessoa p1 = new Pessoa("Rodrigo",2); Pessoa p2 = new Pessoa("Luciana",3); Pessoa p3 = new Pessoa("Jose",1); omap.put("professor",p1); omap.put("aluno",p2); omap.put("diretor",p3); Set<Entry<String,Pessoa>> nos = omap.entryset(); for (Entry<String,Pessoa> no : nos) { Pessoa p = no.getvalue(); System.out.println("Chave: " + no.getkey() + " Valor: " + p.getnome()); Rodrigo Cabral de Azevedo 59 / 67 Classe Hashtable Assim como o Vector, é umas das mais antigas estruturas de coleção, e, é sincronizada (Thead-safety). Não permite nenhuma chave nula. Não respeita a ordem de inserção e utiliza o resultado do método hashcode() para definir uma ordem otimizada. Rodrigo Cabral de Azevedo 60 / 67 30
31 Classe LinkedHashMap Respeita a ordem de inserção. É mais lento que o HashMap para adição e remoção de elementos. É o mais rápido para percorrer. Rodrigo Cabral de Azevedo 61 / 67 Interface Map com LinkedHashMap Formas de percorrer public class TestLinkedHashMap { public static void main(string[] args) { Map<String, Pessoa> omap = new LinkedHashMap<String, Pessoa>(); Pessoa p1 = new Pessoa("Rodrigo",2); Pessoa p2 = new Pessoa("Luciana",3); Pessoa p3 = new Pessoa("Jose",1); omap.put("professor",p1); omap.put("aluno",p2); omap.put("diretor",p3); Set<String> chaves = omap.keyset(); for (String s : chaves) { Pessoa valor = omap.get(s); System.out.println("Chave: " + s + " Valor: " + valor.getnome()); Rodrigo Cabral de Azevedo 62 / 67 31
32 Interface SortedMap Garante que as chaves sejam ordenadas de acordo com ordem natural (Interface Comparable) ou ordenadas de acordo com a interface Comparator. As chaves inseridas na precisam implementar Comparable ou fornecer uma interface Comparator no momento da criação do SortedMap. Rodrigo Cabral de Azevedo 63 / 67 Classe TreeMap Permite ordenar as chaves de acordo com a ordem natural fornecida pela interface Comparable. Permite ordenar as chaves de acordo com a ordem fornecida pela interface Comparator. Rodrigo Cabral de Azevedo 64 / 67 32
33 Interface Map com TreeMap Formas de percorrer public class TestTreeMap { public static void main(string[] args) { Map<String, Pessoa> omap = new TreeMap<String, Pessoa>(); Pessoa p1 = new Pessoa("Rodrigo",2); Pessoa p2 = new Pessoa("Luciana",3); Pessoa p3 = new Pessoa("Jose",1); omap.put("professor",p1); omap.put("aluno",p2); omap.put("diretor",p3); Set<String> chaves = omap.keyset(); for (String s : chaves) { Pessoa valor = omap.get(s); System.out.println("Chave: " + s + " Valor: " + valor.getnome()); Rodrigo Cabral de Azevedo 65 / 67 Interface Map com TreeMap Formas de percorrer public class TestTreeMap2 { public static void main(string[] args) { Map<String, Pessoa> omap = new TreeMap<String, Pessoa>(); Pessoa p1 = new Pessoa("Rodrigo",2); Pessoa p2 = new Pessoa("Luciana",3); Pessoa p3 = new Pessoa("Jose",1); omap.put("professor",p1); omap.put("aluno",p2); omap.put("diretor",p3); Collection<Pessoa> valores = omap.values(); for (Pessoa p : valores) { System.out.println("Valor: " + p.getnome()); Como utilizamos um TreeMap, a ordenação ocorreu normalmente nas chaves. Ao solicitarmos os valores através do método values(), os objetos virão ordenados de acordo com a chave. Rodrigo Cabral de Azevedo 66 / 67 33
34 Referências SIERRA, Kathy; BATES, Bert. Sun Certified Programmer for Java 5 Study Guide. McGraw-Hill/Osborne, 2006 Site java.sun.com Rodrigo Cabral de Azevedo 67 / 67 34
Laboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.
5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 1)
Leia maisColeções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade
Page 1 podem ser comparadas com arrays, visto que também apresentam a capacidade de armazenar referências para vários objetos. Entretanto, as coleções apresentam uma gama de funcionalidades bem maior do
Leia maisColeções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior
Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar
Leia maisBSI UFRPE Prof. Gustavo Callou gcallou@gmail.com
BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade
Leia maisProgramação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.
Programação Java em Ambiente Distribuído Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate Douglas Rocha Mendes Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados
Leia maisColeções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
Leia maisTécnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br
Técnicas de Programação Avançada TCC- 00.174 Prof.: Anselmo Montenegro www.ic.uff.br/~anselmo anselmo@ic.uff.br Conteúdo: Coleções Material elaborado com contribuição do Professor Luiz André Coleções Uma
Leia maisCurso Java Starter. www.t2ti.com 1
1 Apresentação O Curso Java Starter foi projetado com o objetivo de ajudar àquelas pessoas que têm uma base de lógica de programação e desejam entrar no mercado de trabalho sabendo Java, A estrutura do
Leia maisColeções. João Paulo Q. dos Santos
Coleções João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre coleções; Tipos de coleções; Como são classificadas; Exemplos. 04/02/14 2 Coleções Classes e interfaces do pacote java.util
Leia maisParadigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33
PPROG Paradigmas da Programação Linguagem JAVA Interfaces (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33 PPROG Motivação para usar Interfaces Definição de Interface
Leia maisGuia de Fatores de Qualidade de OO e Java
Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.
Leia maisImplementação de Classe e Auto-Relacionamento em Java
UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Implementação de Classe e Auto-Relacionamento em Java 1)Introdução Um modelo de Diagrama de Classes representa a estrutura definida
Leia maisUnidade IV: Ponteiros, Referências e Arrays
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Leia maisProgramação Orientada a Objetos. Encapsulamento
Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem
Leia maisTécnicas de Programação II
Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.
Leia mais5 Caso de estudo O cartão fidelidade
5 Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante
Leia maisLista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição
Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisTabela de símbolos: tabelas de espalhamento
Tabela de símbolos: tabelas de espalhamento Marcelo K. Albertini 14 de Janeiro de 2014 2/28 Resumo de complexidades Análises para operação efetuada após N inserções pior caso caso médio keys chave get
Leia maisCapítulo 21. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 21 Coleções Objetivos do Capítulo Analisar o conceito de coleção e sua relação com as estruturas de dados. Apresentar a arquitetura do framework de coleções do Java. Indicar as classes e interfaces
Leia maisTipos de Dado Abstrato: Listas, Filas e Pilhas
Tipos de Dado Abstrato: Listas, Filas e Pilhas Estruturas de Dados Prof. Vilson Heck Junior Introdução Tradicionalmente conhecidos como Tipos de Dado Abstrato, são algumas Estruturas de Dados básicas e
Leia maisExercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
Leia maisLógica de Programação
Lógica de Programação Unidade 20 ArrayList: Operações de Busca Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 TIPOS DE BUSCAS... 3 BUSCA ESPECÍFICA... 3 BUSCA ABRANGENTE... 3 PROCEDIMENTO DE BUSCA...
Leia maispublic Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.
import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)
Leia maisMódulo 06 Desenho de Classes
Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.
Leia maisProgramação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM
Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam
Leia maisImplementando uma Classe e Criando Objetos a partir dela
Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe
Leia maisRafael Santos. Instituto Nacional de Pesquisas Espaciais www.lac.inpe.br/ rafael.santos. Rafael Santos - www.lac.inpe.br/ rafael.
Coleções e Aplicações Rafael Santos Instituto Nacional de Pesquisas Espaciais www.lac.inpe.br/ rafael.santos Rafael Santos - www.lac.inpe.br/ rafael.santos 1 / 54 Tópicos 1 Sobre... 2 Revisão de Java 3
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.
Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante
Leia maisProgramação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM
Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Introdução GUI Classes abstratas São classes que não podem ser instanciadas,
Leia maisEncapsulamento de Dados
Encapsulamento de Dados Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Modificadores de Visibilidade Especificam
Leia maisBruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4. jvo@ualg.pt José Valente de Oliveira 16-1
Streams III Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4 jvo@ualg.pt José Valente de Oliveira 16-1 Previously: Serializing a collection public
Leia maisEXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS
Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor
Leia mais7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.
Desenvolvimento OO com Java 7 RTTI e Interfaces Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Leia maisBUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES
BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é
Leia mais15-09-2009. Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido
PARTE III: Java e OO - detalhes Membros de classe e instâncias Pacotes Visibilidade Classes aninhadas Membros de classe e de instância De classe Static Método não necessita de objeto para ser chamado.
Leia maisColeções. Prof. Marcelo Roberto Zorzan
Coleções Prof. Marcelo Roberto Zorzan Coleções Aula de Hoje Introdução Coleções podem representar estruturas de dados complexas de forma transparente para o programador. Exemplos: Músicas favoritas armazenadas
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia mais3 Classes e instanciação de objectos (em Java)
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisBusca. Pesquisa sequencial
Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um
Leia maisAlgoritmos e Programação II. Sobrecarga
Algoritmos e Programação II Baseado no Material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, têm nomes distintos porque
Leia maisAula 30 - Sockets em Java
Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar
Leia maisReuso com Herança a e Composiçã
Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:
Leia maisJava. Marcio de Carvalho Victorino www.dominandoti.eng.br
Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para
Leia maisIntrodução à Programação. Interface, Polimorfismo e Dynamic Binding
Introdução à Programação Interface, Polimorfismo e Dynamic Binding Interface Programador Java PLENO Possuir sólida experiência em programação Desenvolvimento na linguagem JAVA Webservice, Struts ou JSF(desejável)
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Java Collections Framework (JCF) Uma coleção (collection) é um objeto que agrupa vários elementos. A JCF consiste numa arquitetura para representação e manipulação de coleções. Contém: - Um conjunto de
Leia maisDAS5102 Fundamentos da Estrutura da Informação
Pilhas A estrutura de dados Pilha emula a forma de organização de objetos intuitiva que é utilizada diariamente nos mais diversos contextos da vida humana. Containeres são empilhados e desempilhados diariamente
Leia maisExercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.
Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +
Leia maisProgramação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP
Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente
Leia maisJava Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp
Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define
Leia maisModulo IIa Extra: Object
Modulo IIa Extra: Object Professor Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Linguagem de Programação JAVA Ismael H. F. Santos,
Leia maisProgramação Orientada a Objetos em java. Polimorfismo
Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa
Leia maisUniversidade da Beira Interior. Sistemas Distribuídos
Folha 6-1 Sincronização de Threads A sincronização de Threads em Java é baseada no conceito do Monitor (de Hoare). Cada objecto Java tem associado um monitor (ou lock ) que pode ser activado se a palavra
Leia maisProgramação Visual TIC - 3PA. Lista de Exercícios 02
Programação Visual TIC - 3PA Lista de Exercícios 02 Professor: Edwar Saliba Júnior 1) Elabore um programa para simular uma conta de poupança. Crie uma classe contacorrente com os seguintes atributos: saldo,
Leia maisTutorial de Uso com o Java
Tutorial de Uso com o Java Criado por Fernando Anselmo Versão 1.0 em 18/08/2012 Seção 1 Nesta seção veremos: Histórico do MongoDB Como instalar o MongoDB Console de Comandos Usar o Java MongoDB (de "humongous
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade pdjkleber@gmail.com Coleções, Propriedades, Resources e Strings (Parte 2) Coleções É comum usarmos um objeto que armazena vários outros
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos
Leia maisDesenvolvimento Web com Framework Demoiselle versão 1.0
Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado
Leia maisSlide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education
Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com
Leia mais5. Generics, Iterators e Comparable em Java. Tipos de Dados Abstractos Generics em Java
5. Generics, Iterators e Comparable em Java Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 5. Generics, Iterators e Comparable em Java Estruturas de Dados 1 / 12 Tipos de Dados Abstractos
Leia maisAula 16: Estudo de Caso: A API de Coleções do Java
Aula 16: Estudo de Caso: A API de Coleções do Java Você não pode ser um programador Java competente sem compreender as partes cruciais da biblioteca Java. Os tipos básicos estão todos em java.lang, e são
Leia maisPara criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.
7 Animação Animações é um dos quesitos muito importantes em jogos, você não acha? Para isso o JPlay tem uma classe específica para lidar com animações. Essa classe se chama Animation. Bem sugestivo o nome
Leia maisHerança. Algoritmos e Programação II. Aula 5 Herança
Algoritmos e Programação II Aula 5 Herança *Adaptado do material do Prof. Júlio Machado Herança Uma característica importante da programação orientada a objetos é permitir a criação de novas classes com
Leia maisLinguagem de Programação Orientada a Objeto Coleções
Linguagem de Programação Orientada a Objeto Coleções Professora Sheila Cáceres Coleções Uma coleção é uma estrutura de dados que permite armazenar vários objetos As operações que podem ser feitas em coleções
Leia maisLista encadeada class No { Coleções. Enumeration. Lista encadeada (continuação) Enumeration Exemplo usando a classe Lista anterior
Coleções Retirado do Tutorial Java class Lista { No inicio = null; Lista encadeada class No { void insereinicio(object obj) { No n = new No(obj, inicio); inicio = n; Object obj; No prox; No(Object obj,
Leia maisObjetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único
Pacotes e Encapsulamento Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes
Leia maisProgramação Orientada a Objetos em Java. Herança
Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados
Leia maisEAD Árvore árvore binária
EAD Árvore árvore binária - Uma árvore binária é um conjunto finito de elementos (nodos) que pode ser vazio ou particionado em três subconjuntos: - raiz da árvore (elemento inicial, que é único); - subárvore
Leia maisTemplates e Pilhas. 1. Introdução
Templates e Pilhas 1. Introdução Templates ou Generics é considerado uma forma de polimorfismo [1]. É uma forma de programar onde o tipo do dado não é considerado. Programa-se para um tipo de dado indefinido.
Leia mais2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}
2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II Exercício : Construtores são métodos especiais sem tipo de retorno (nem mesmo void) e de mesmo nome que a classe que são invocados quando da criação
Leia maisFBV - Linguagem de Programação II. Um pouco sobre Java
FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base
Leia maisAnálise de Programação
Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros
Leia maisProgramação Orientada a Objetos em Java
Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Leia maisEspecialização em web com interfaces ricas
Especialização em web com interfaces ricas Conceitos avançados de programação Prof. Fabrízzio Alphonsus A. M. N. Soares fabrizzio@inf.ufg.br professor.fabrizzio@gmail.com Instituto de Informática Universidade
Leia mais8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.
Desenvolvimento OO com Java 8 Classes Internas Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do
Leia maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisAPI e Coleções Java. Sérgio Luiz Ruivace Cerqueira
API e Coleções Java Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java API Introdução API Endereço http://download.oracle.com/javase/6/docs/api/ API - Descrição API - Resumo API - Detalhes Coleções
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato
Leia maisÁrvores Binárias de Busca
Árvores Binárias de Busca Uma Árvore Binária de Busca T (ABB) ou Árvore Binária de Pesquisa é tal que ou T = 0 e a árvore é dita vazia ou seu nó contém uma chave e: 1. Todas as chaves da sub-árvore esquerda
Leia maisTabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação
Java Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação 1 Tabelas para quê? As tabelas são utilizadas quando se pretende armazenar e manipular um grande número de
Leia maisINF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 10 Árvores Binárias (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Árvores binárias Representação em C Ordens de percurso em árvores binárias Altura de uma árvore
Leia maisProgramação Concorrente em java - Exercícios Práticos Abril 2004
Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente
Leia maisTrabalho 3: Agenda de Tarefas
INF 1620 Estruturas de Dados Semestre 08.2 Trabalho 3: Agenda de Tarefas O objetivo deste trabalho é a implementação de um conjunto de funções para a manipulação de uma agenda de tarefas diárias, de forma
Leia maisAula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.
Aula 04 Operadores e Entrada de Dados Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Operadores: Aritméticos; Atribuição; Concatenação;
Leia maisInstituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos
Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos Nome: LISTA DE EXERCÍCIO 1 Collections Framework 1. Criem um projeto que
Leia maisTHREADS EM JAVA. George Gomes Cabral
THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores
Leia maisJSP - ORIENTADO A OBJETOS
JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...
Leia maisA Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação
A Introdução à Programação Orientada a Objetos Programação e Sistemas de Informação Objectos (1) Objectos são coisas que temos no mundo real e abstraímos no mundo virtual para que possamos manipulá-los
Leia maisJava Collections Framework II
Java Collections Framework II Bruce Eckel, Thinking in Java, 4th edition, PrenticeHall, New Jersey, cf. http://mindview.net/books/tij4 Gilad Bracha, Generics in the Java Programming Language a.k.a The
Leia maisHerança. Alberto Costa Neto DComp - UFS
Herança Alberto Costa Neto DComp - UFS 1 Motivação Vimos como se faz encapsulamento e a importância de fazê-lo... Contudo, também é possível fazer encapsulamento em algumas linguagens não OO O que mais
Leia maisRevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN 2178-5589.
Tutorial de Instalação e Uso do Eclipse Alexandre V. S. Lage, Caio de O. Leal, Eduardo A. F. da Silva, Felipe C. C. Trindade, Gutierre da C. Oliveira e Miguel G. P. de Carvalho. INTRODUÇÃO O Eclipse (2012)
Leia maisLinguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em
Leia maisAULA DE JAVA 2 CONCEITOS AVANÇADOS
AULA DE JAVA 2 CONCEITOS AVANÇADOS DAS 5316 Integração de Sistemas Corporativos Roque Oliveira Bezerra, M. Eng. roque@das.ufsc.br Prof. Ricardo J. Rabelo ROTEIRO Recaptulação da aula anterior Exceções
Leia maisJDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.
JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado
Leia maisProgramação Orientada a Objetos em
Programação Orientada a Objetos em Flávio Miguel Varejão UFES Utilidades Pacotes com várias classes amplamente utilizadas Exemplos Vector, ArrayList, Calendar, Currency, Random, Formatter, Scanner, Comparator,
Leia maisCapítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 14 Herança a e Polimorfismo Objetivos do Capítulo Apresentar os conceitos de herança e de polimorfismo. Explorar os diversos recursos disponíveis no Java para a aplicação da herança e do polimorfismo
Leia mais