Quando usar Collections - Parte II
Conheça neste artigo os principais métodos da classe Collection e da interface Map.
No artigo anterior eu prometia que iríamos explorar o grupo List, mas, antes de começar a falar sobre Listas de Objetos, é importante que se saiba quais são os principais métodos da Classe Collection e da interface Map.
Os Principais métodos da Classe Collection
Add(Object objeto) - Adiciona a coleção a um determinado objeto
addAll(Collection outraCollection) – Adiciona todos elementos de outra coleção.
clear() - Limpa todos os elementos de uma coleção.
contains(Object objeto) – Retorna true se o objeto já fizer parte da coleção.
containsAll(Collection outraCollection) – Retorna true caso todos os elementos de outra coleção estiverem presentes em determinada coleção.
hashcode() - Retorna o hashcode do objeto.
iterator() - Retorna o objeto de iteração com os elementos desta coleção.
remove(Object objeto) – Remove o objeto da coleção
removeAll(Collection outraCollection) – Remove todos os elementos que pertençam à coleção corrente e á outra coleção determinada.
retainAll(Collection outraCollection) – Remove todos os elementos que não façam parte da coleção corrente e da outra coleção.
Size() - Retorna a quantidade elementos existentes na coleção.
toArray() - Retorna uma matriz de objetos(Object[]) dos elementos que estão contidos na coleção.
toArray(<tipo>[]matriz) – Retorna uma matriz do <tipo> fornecido e, se a a matriz contiver a quantidade de elementos suficiente, passa a ser utilizada para armazenamento.
Os principais métodos da interface Map
clear() - Limpa todos os elementos do mapa.
containsKeys(Object Key) – Verifica se a chave faz parte do mapa.
containsValue(Object value) – Verifica se o valor faz parte do mapa.
EntrySet() - Retorna um conjunto do tipo (Set) contendo as chaves do mapa.
get(Object key) - Retorna o valor baseado em uma chave.
put(Object Key,Object value) – Coloca a chave com base em valor.
putAll(Map outroMapa) – Coloca todos os elementos de outroMapa no mapa corrente.
remove(Object key) – Remove o elemento com a chave fornecida.
Size() - Retorna a quantidade de elementos existentes no mapa.
Value() - Retorna uma coleção com os elementos do mapa.
As coleções estão dividas em três grandes grupos: List, Set e Map
Falaremos primeiro sobre o grupo List (Lista de Objetos)
A Finalidade do grupo List é gerenciar um grupo de elementos em sequência, muito semelhante a uma matriz, porem com a diferença de que, quando usamos uma classe do grupo List, a quantidade de elementos são modificadas dinamicamente.
Listas de Objetos são coleções onde os elementos podem se repetidos podem ocorrer e onde todos tem uma posição definida, a implementação de listas em java é muito semelhante a de Conjuntos (veremos nos próximos artigos).
Novo Java existe a interface List, esta declara quais metódos podem ser utilizados pelas classes ArrayList e LinkedList para manipular listas, essas classes possuem mecanismos distintos para representação interna dos objetos da Lista.
Na Figura1 e Figura 2 ilustramos o funcionamento das classes: ArrayList e LinkedList:
Figura 1
Figura 2
ArrayList implementa internamente uma lista como um array e tem um performance melhor, porém não é eficiente em situações que envolvam a inserção e deleção de elementos na lista. Enquanto que com o LinkedList ocorre justamento o inverso, sendo mas lenta para acesso sequencial a elementos da lista.
Veja o código abaixo:
public class Lista {
public static void main (String args[]) {
String pessoas[] = new String[4];
pessoas[0] = "Dinardo";
pessoas[1] = "Rosa";
pessoas[2] = "Rafael";
pessoas[3] = "Alex";
for(int i=0; i < pessoas.length; i++)
System.out.println(pessoas[i]);
}
}
Embora funcional, observe que não existe a possibilidade de adicionar mais um nome a essa listagem, (partindo da idéia de que a classe já esta compilada) . Para isso a solução seria criar uma nova matriz com um novo tamanho e fazer a transferência dos elementos de uma para a outra. Veja o exemplo disso a seguir:
public class Listas {
public static void main (String args[]) {
String pessoas[]= new String[4];
pessoas[0] = "Dinardo";
pessoas[1] = "Rosa";
pessoas[2] = "Rafael";
pessoas[3] = "Alex";
String galera[] = new String[5];
for (int i = 0; i < pessoas.length; i++) {
galera[i] = pessoas[i];
}
galera[4] = "Anderson";
pessoas = galera;
for(int i=0; i < pessoas.length; i++)
System.out.println(pessoas[i]);
}
}
O resultado do código a cima é mostrado a seguir:
Dinardo
Rosa
Rafael
Alex
Anderson
Mas esse procedimento embora possível, pode ser complicado, trabalhoso e até dispendioso, o que nos leva a procurar outra solução.
A solução mais adequada para resolver nosso problema seria usar uma das classes do grupo List. No nosso exemplo usarei a classe ArrayList para demonstrar o procedimento.
A seguir veja como ficou o nosso código:
import java.util.ArrayList;
public class Lista2 {
public static void main(String[] args) {
ArrayList lista2 = new ArrayList();
lista2.add("Dinardo");
lista2.add("Rosa");
lista2.add("Rafael");
lista2.add("Alex");
lista2.add("Anderson");
for (int i = 0; i < lista2.size(); i++) {
System.out.println(lista2.get(i));
}
}
}
O resultado do código acima é mostrado a seguir:
Dinardo
Rosa
Rafael
Alex
Anderson
No nosso código acima podemos visualizar que o objeto Lista2 do tipo ArrayList controla um conjunto, realiza a inserção de dados de forma similar a uma matriz , por isso é possível a qualquer momento transformar o seu conteúdo em uma matriz, isso é feito através do uso do método toArray(). A seguir vemos um exemplo do uso deste método:
import java.util.ArrayList;
public class Lista3 {
public static void main(String[] args) {
ArrayList lista2 = new ArrayList();
lista2.add("Dinardo");
lista2.add("Rosa");
lista2.add("Rafael");
lista2.add("Anderson");
lista2.add("Alex");
String colegas[] = (String[])lista2.toArray(new String[0]);
for (int i = 0; i < colegas.length; i++) {
System.out.println(colegas[i]);
}
}
}
O resultado do código acima é mostrado a seguir e como podem ver é bem semelhante ao do código anterior:
Dinardo
Rosa
Rafael
Anderson
Alex
No próximo artigo exploraremos continuaremos falando do grupo List e veremos mais alguns exemplos.
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo