de java.util.* no topo de cada arquivo *.java:package lab2;import java.util.*;public class UsandoColecoes { List<String> lista = new ArrayList<String>(); ... //resto da classe}Sintaxe basica de uma colecao de NomeCompleto:Adiciona um nome a lista: boolean add(NomeCompleto o);Verifica se um objeto esta na lista: boolean contains(Object o);Remove um elemento da lista: boolean remove(NomeCompleto o);Verifica quantos elementos tem na lista: int size();Exemplo de uso:List<NomeCompleto> iapjava = new ArrayList<NomeCompleto>();iapjava.add(new NomeCompleto("Luis", "Lima");iapjava.add(new NomeCompleto("Jose", "Silva");System.out.println(iapjava.size()); // => 2iapjava.remove(new NomeCompleto("Jose", "Silva");System.out.println(iapjava.size()); // => 1List<NomeCompleto> iapruby = new ArrayList<NomeCompleto>();Iapruby.add(new NomeCompleto("Marcos", "Fontes"));iapjava.addAll(iapruby);System.out.println(iapjava.size()); // => 2Colecoes GenericasE permitido definir uma colecao que so armazene objetos de um determinado tipo como no exemplo acima. Porem tambem e permitido definirmos colecoes genericas que armazenam objetos de qualquer tipo.Exemplo de colecoes genericas:List untyped = new ArrayList();List<String> typed = new ArrayList<String>();Object obj = untyped.get(0);String sillyString = (String) obj;String smartString = typed.get(0);As colecoes nao genericas ou tipadas sao mais praticas de manipular.Recuperando todos os dados de uma lista:Dado uma colecao de NomeCompleto chamada colecaox podemos usar duas ferramentas para recuperar cada item da colecao: Iterator e For each.IteratorIterator<NomeCompleto> it = colecaox.iterator();while (it.hasNext) { NomeCompleto obj = it.next(); // Fazer alguma coisa com cada objeto}for (NomeCompleto obj : colecaox) { // Fazer alguma coisa com cada objeto}Excluir objetos da lista enquanto se esta recuperando os mesmo:Nao e permitido remover objetos de uma colecao enquanto a mesma esta em um laco for-each. Para remover uma lista enquanto se esta recuperando e necessario usar o Iterator:Iterator<NomeCompleto> it = colecaox.iterator();while (it.hasNext) { NomeCompleto obj = it.next(); it.remove(obj); // Veja que so se remove pelo Iterator nao pela colecao: colecaox.remove(Obj);}Tipos de Colecao disponiveis:Listas:ArrayList;Conjunto: (set)HashSetTreeSetMapeamento (map)HashMapListasArrayList e uma lista de objetos ordenados, similar a um Array, porem sem tamanho pre-definido. A lista e ordenada de acordo com a ordem de insercao.Definindo e inserindo itens na lista:List<String> strings = new ArrayList<String>();strings.add("one");strings.add("two");strings.add("three");// strings = [ "one", "two", "three"]Inserindo objetos em uma determinada posicaoList<String> strings = new ArrayList<String>();strings.add("one");strings.add("three");strings.add(1, "two");// strings = [ "one", "two", "three"]Recuperando objetos de uma determinada posicao:s.o.print(strings.get(0)) // => "one"s.o.print(strings.indexOf("one")) // => 0Conjuntos (set)Colecao sem tamanho e sem ordem definida. Nao e permitido duplicidade de objetos no conjunto.Exemplo:Set<NomeCompleto> nomes = new HashSet<NomeCompleto>();nomes.add(new NomeCompleto("Jose", "Silva"));nomes.add(new NomeCompleto("Jose", "Silva"));System.out.println(names.size()); => 1Regra de ouro para Conjuntos (set):Um elemento do conjunto nao pode mudar se isso podera afeta-la a ponto de torna-lo igual a um outro objeto do conjunto. (ou a outro objeto a ser inserido no conjunto mesmo apos a mudanca)Se nao respeitar esta regra, pode se preparar para coisas realmente estranhas. De preferencia sempre use objetos imutaveis com conjuntos.Mapas (map)Mapas sao conjuntos de pares Chave/Valor. Para cada chave o mapa armazena um valor correspondente. Com o valor da chave a colecao map pode recuperar o valor previamente armazenado. Uma chave deve ser unica, porem valores podem repetir.E um servico muito util para armazenamento e posterior recuperacao de dados com valor chave. Utilissimo para uso com banco de dados relacionais. Iremos usar isso muito, entao nao deixe duvidas a respeitoMapas nao implementam as funcoes add e contais, em seu lugar temos as seguintes funcoes:boolean put(Foo chave, Bar valor);boolean contaisKey(Foo chave);boolean contaisvalue(Bar value);(neste exemplos Foo e Bar sao duas