Colecoes
Coleções
O conjunto de classes java para coleções (Java
Collection Framework) é composto de várias interfaces e classes concretas.
Existem três interfaces principais: Collection, Map e
Queue, definem os métodos comuns de estruturas de dados do tipo coleções, mapas e filas respectivamente. As interfaces estão marcadas com (I) e as classes concretas com
(C):
Collection (I)
Set (I)
HashSet (C)
Sorted Set (I)
TreeSet(C)
List (I)
ArrayList (C)
Vector (C)
LinkedList (C)
Queue (I)
...
Map (I)
HashMap (C)
HashTable (C)
SortedMap (I)
TreeMap (C)
1) Coleções:
Collection: interface que define operações comuns de coleções.
Esta interface possui duas sub-interfaces - Set (Conjunto) e List (Lista);
2) Conjuntos:
Set: implementação de Collection, que modela um conjunto de elementos únicos;
HashSet: implementação de Set, modela conjuntos não ordenados;
SortedSet: implementação de Set, modela conjuntos ordenados;
3) Listas:
List: modela listas de dados, onde os elementos (repetidos ou não) estão ordenados;
ArrayList: usa métodos não-sincronizados e Vector utiliza métodos sincronizados (synchronized)
Vector: é apropriado para uso em multithread, porém é mais lento que
ArrayList;
LinkedList: é uma Lista, onde os elementos estão ligados. Tem uma inserção e deleção muito mais rápidos que ArrayList e Vector.
Array e ArrayList array não tem dimensão dinâmica suporta tipos primitivos não é uma classe não suporta métodos possui atributo length
ArrayList tem dimensão dinâmica não suporta tipos wrapper é uma classe suporta métodos possui o método size()
Exemplo import java.util.ArrayList; public class ComparandoArrayEArrayList { public static void main(String[] args) {
// inicialização:
String[] ola1 = new String[3];
ArrayList<String> ola2 = new ArrayList<String>();
// atribuição ola1[0] = "o"; ola1[1] = "l"; ola1[2] = "a"; ola2.add("o"); ola2.add("l"); ola2.add("a"); ola2.add("!");
// percorrendo com for for (String s: ola1)
System.out.print(s);
System.out.println();