Podemos agrupar objetos de duas formas, via interface Collection ou interface Map.
Ambas tem estruturas diferentes, isto quer dizer que a maneira em que os objetos vão ser adicionados ou chamados será diferente. Dentro da interface Collection temos duas subinterfaces:
- Set: não aceita objetos duplicados
- List: aceita objetos duplicados
Porem a interface Map possui uma estrutura de dados diferente. Para cada objeto que adicionamos em uma lista do tipo Map, teremos uma chave associada. Pra recuperar o objeto faremos referencia a essa chave como mecanismo de pesquisa (no caso da interface Collection utilizaremos índices).
Vantagens de usar framework collection
- Redução do esforço
- Aumento na qualidade e na produtividade do desenvolvimento
- Adaptabilidade
- Alocação na memória de forma automática
Interfaces e classes do framework collection
![]() |
| Figura 1 - Classes e interfaces que implementam ou estendem a interface Collection |
Neste exemplo estou utilizando um arraylist, que implementa List e por consequência implementa Collection:
Podemos utilizar diferentes implementações entre métodos utilizando herança e polimorfismo:
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class ArrayLista {
public static void main(String[] args) {
Collection obj = new ArrayList();
obj.add("Teste");
System.out.println("Objeto: " +((List )obj).get(0));
}
} Perceba-se que na impressão da mensagem, estamos realizando um downcasting para a interface List que o define. Pois o método get() pertence a classe List, que permite acessar a informação dos objetos da lista.Podemos utilizar diferentes implementações entre métodos utilizando herança e polimorfismo:
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Declaramos duas listas diferentes
Collection lista1 = new ArrayList();
Collection lista2 = new HashSet<>();
// Preenchemos a lista do tipo ArrayList
inserir(lista1, "Blog do felansu");
inserir(lista1, "Ferran Gonzalez ALonso");
inserir(lista1, "gaferran@gmail.com");
// Preenchemos a lista do tipo HashSet
inserir(lista2, "Faculdade Delta");
inserir(lista2, "www.felansu.blogspot.com");
// Listamos
listar(lista1);
listar(lista2);
}
static void inserir(Collection obj, String str){
obj.add(str);
}
static void listar(Collection obj){
Iterator it = obj.iterator();
while (it.hasNext()) {
System.out.println("String da lista: " +it.next());
}
}
}
É importante saber que a interface Collection não possui o método get(), por isso utilizamos iteradores. Utilizaremos sempre iteradores para navegar em uma coleção do tipo Set ou List.
0 comentarios:
Postar um comentário