Buscar

Aula 7 Programação Orientada Objeto

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Orientada a Objetos. 
 
1 
Prof.Fábio Rener 
 
Coleções em Java. 
 
Métodos hashCode e equals. 
 
A implementação correta dos métodos hashCode e equals é muito importante 
na utilização de coleções, os métodos contains, removeAll, remove, entre 
outros.....falham quando equals não esta corretamente implementado e 
perdem performance ou falham quando hashCode não esta otimizado ou 
corretamente implementado. 
 
 
 
 
 
 
java.util.Collection 
 
A interface Collection é a especificação que representam um grupo de objetos, 
chamados de elementos. 
Existem diferentes implementações e sub-interfaces da inteface collection que 
oferecem vantagens e desvantagens, dependendo da situação, podemos 
encontrar coleções com as seguintes características: 
 
• Algumas permitem elementos duplicados e outras não. 
• Algumas são ordenadas e outras não. 
• Algumas permitem a inserção do elemento null e outras não. 
 
 
 
Programação Orientada a Objetos. 
 
2 
Prof.Fábio Rener 
java.util.List 
 
A interface List define uma coleção ordenada, também conhecida como 
seqüência. Por isto, quando utilizamos objetos que implementem esta interface, 
obtemos o controle sobre a posição em que os elementos são inseridos, sendo 
possível acessá-los através de um índice inteiro (posição na lista). 
 
Normalmente as classes que implementam esta interface permitem elementos 
duplicados e elementos null. 
 
 Índice List 
0 
1 
2 
 
N 
Cliente 1 
Cliente 3 
Cliente 2 
 
Cliente n 
 
 
 
java.util.ArrayList 
 
É uma implementação da interface List, onde o tamanho do array pode ser 
alterado em tempo de execução. 
 
Quando utilizamos ArrayList é permitida a inserção de todo tipo de elementos, 
inclusive null. 
 
Esta classe não é synchronized, portanto não é segura para acesso de dados 
de maneira simultânea, sendo esta a principal diferença da classe 
java.util.Vector. 
 
Construtores: 
 
• ArrayList(): Constrói um ArrayList vazio, com capacidade inicial de 10 
posições; 
• ArrayList (Colection c): Constrói um ArrayList contendo os objetos da 
Collection c; 
• ArrayList (int initialCapacity): Constrói um Arraylist vazio com a 
capacidade inicial igual a initialCapacity; 
 
Adicionando elementos ao ArrayList 
• void add (int i, Object obj): inserção do objeto obj na posição i; 
• boolean add(Object o): adiciona o objeto na ultima posição do ArrayList; 
 
Verificando se o ArrayList contem determinado elemento 
• boolean contains (Object obj): Retorna true se o ArrayList possui o 
objeto obj. A análise é baseada no método equals implementando na 
classe de obj. 
 
 
Programação Orientada a Objetos. 
 
3 
Prof.Fábio Rener 
Recuperando um elemento do ArrayList 
• Object get (int pos): Retorna o elemento que está na posição pos do 
ArrayList; 
• Int indexOf (Object elem): Retorna a posição do elemento no ArrayList. 
 
Removendo elementos do ArrayList 
• Object remove (int index): Remove o elemento que estiver na posição 
index. 
 
Verificando o tamanho do ArrayList 
• Int size (): Retorna o número de elementos do ArrayList. 
 
 
java.util.ArrayList e java.util.Vector 
 
As duas oferecem, basicamente, a mesma funcionalidade, no entanto, Vector 
oferece acesso sincronizado e, dessa maneira, podemos ter acesso simultâneo 
com segurança. 
 
No entanto, o sincronismo tem seu preço, isto é, torna a manipulação do Vector 
mais lenta que o ArrayList. 
 
Por isso, caso não exista a necessidade de acessos simultâneos, prefira o uso 
de ArrayList, ao invés de Vector. 
 
Exemplo: 
 
Endereco.java 
 
package br.anhanguera.poo; 
 
public class Endereco { 
 
 private String rua; 
 private int numero; 
 
 
 public Endereco(String rua, int numero) { 
 this.setRua(rua); 
 this.setNumero(numero); 
 } 
 
 public int getNumero() { 
 return numero; 
 } 
 
 public void setNumero(int numero) { 
 this.numero = numero; 
 } 
 
 public String getRua() { 
 return rua; 
 } 
 
 public void setRua(String rua) { 
 this.rua = rua; 
 } 
 
Programação Orientada a Objetos. 
 
4 
Prof.Fábio Rener 
 
 @Override 
 public String toString() { 
 return "Endereco [numero=" + numero + ", rua=" + rua + "]"; 
 } 
 
 @Override 
 public int hashCode() { 
 final int prime = 31; 
 int result = 1; 
 result = prime * result + numero; 
 result = prime * result + ((rua == null) ? 0 : rua.hashCode()); 
 return result; 
 } 
 
 @Override 
 public boolean equals(Object obj) { 
 if (this == obj) 
 return true; 
 if (obj == null) 
 return false; 
 if (getClass() != obj.getClass()) 
 return false; 
 Endereco other = (Endereco) obj; 
 if (numero != other.numero) 
 return false; 
 if (rua == null) { 
 if (other.rua != null) 
 return false; 
 } else if (!rua.equals(other.rua)) 
 return false; 
 return true; 
 } 
 
 
} 
 
 
ExemploArrayList.java 
 
package br.anhanguera.poo; 
 
import java.util.ArrayList; 
 
public class ExemploArrayList { 
 
 
 public static void main(String[] args) { 
 
 //instancia de endereco 
 Endereco end1 = new Endereco("Av. Bernadino de Campos", 32); 
 //instancia de endereco 
 Endereco end2 = new Endereco("Rua. Raul Jordão ", 73); 
 //instancia de endereco 
 Endereco end3 = new Endereco("Av. Duque de Caxias", 408); 
 
 //monta lista de endereco 
 ArrayList<Endereco> lista = new ArrayList<Endereco>(); 
 lista.add(end1); 
 lista.add(end2); 
 lista.add(end3); 
 
 //imprime todos os elementos da lista 
 imprimeElementos(lista); 
 
 System.out.println("\n ====== removendo o elemento de indice"); 
 
 Endereco endRemovido = lista.remove(1); 
Programação Orientada a Objetos. 
 
5 
Prof.Fábio Rener 
 
 System.out.println("Endereco removido >> " + endRemovido); 
 
 imprimeElementos(lista); 
 
 
 } 
 
 
 
 private static void imprimeElementos(ArrayList<Endereco> lista){ 
 
 System.out.println("\n Numero de elementos " + lista.size() ); 
 System.out.println("\n Imprimido todos os enderecos: "); 
 
 
 for (int i = 0; i < lista.size(); i++) { 
 System.out.println("(" + i + ") ==> " + lista.get(i)); 
 } 
 
 } 
 
} 
 
 
 
Exercícios 
 
 
1) Crie uma lista ordenada(ArrayList) para a classe Aluno com os seguintes 
atributos(nome,ra,matricula), adicione alguns Alunos nessa lista e 
mostre os dados. 
 
2) Crie uma lista ordenada para a classe Pessoa com os seguintes 
atributos(nome,idade,telefone), adicione algumas Pessoas nessa lista e 
mostre os dados. 
 
3) O que faz o método contains do ArrayList ? 
 
 
4) Explique a importância do método equals para uso de collections ? 
 
 
5) Qual a diferença entre ArrayList e Vector ?

Outros materiais