Coleções em Java - Iterable e Collection
Uma coleção é um conjunto de objetos, que chamamos elementos.
Algumas coleções possuem recursos como:
- repetição de elementos;
- ordenação;
- classificação.
As coleções derivam, direta ou indiretamente, da interface java.lang.Iterable<T>.
Iterable é uma interface que determina que uma coleção pode ter seus elementos alcançados por uma estrutura foreach. A interface só possui um método:
- Iterator<T> iterator() » método iterator, que retorna um Iterator para uma coleção do tipo T.
OBS.: tipo T quer dizer: qualquer tipo. Se a coleção contiver Strings, T é String, se contiver Integer, T é Integer, e assim por diante.
A interface java.util.Collection<E>, que estende (pois é… em português extends é estende, com S!!!) Iterable, é a base para toda a hierarquia de coleções.
O Java não possui implementações (classes) diretas de Collection. Na verdade, Collection serve de base para interfaces mais específicas, como:
- List;
- Set.
Collection possui os seguintes métodos:
- boolean add(Object o) » adiciona um elemento à coleção;
- boolean addAll(Collection<? extends E> c) » adiciona todos os elementos de uma coleção c à outra;
- void clear() » remove (apaga) todos os elementos da coleção;
- boolean contains(Object o) » retorna true se o objeto o pertence à coleção;
- boolean containsAll(Collection<?> c) » retorna true se todos os o elementos de uma coleção c pertencem à coleção;
- boolean equals(Object o) » retorna true se as referências de ambas as coleções são as mesmas;
- int hashCode() » retorna o código hash da coleção;
- boolean isEmpty() » retorna true se a coleção não contiver nenhum elemento;
- boolean remove(Object o) » remove um elemento o da coleção;
- boolean removeAll(Collection<?> c) » remove da coleção todos os elementos da coleção c
- boolean retainAll(Collection<?> c) » remove da coleção todos os elementos que não estão na coleção c;
- int size() » retorna o tamanho (quantidade de elementos) da coleção;
- Object[] toArray() » retorna um array de Objects, contendo todos os elementos da coleção;
- <T> T[] toArray(T[] a) » retorna um array de elementos do mesmo tipo T passado como argumento, contendo todos os elementos da coleção;
- Iterator<E> iterator() » retorna um Iterator para os elementos da coleção.
OBS.: Collection<? extends E> c quer dizer: objeto c, do tipo Collection, que contém elementos do mesmo tipo da coleção que está executando o método.