quando a ordem de insercao ou a posicao na colecao nos interessa.ArrayList - Pode ser visto como um array dinamico.Vector - Basicamente um ArrayList, no entanto seus metodos sao sincronizadosLinkedList - Todos os elementos sao ligados entre si.Exemplo:Obs: ArrayList e LinkedList seguem a mesma interface, List. Portanto, e possivel realizar as mesmas operacoes nas duas listas.import java.util.ArrayList;import java.util.Collections;public class ExemploList { public static void main(String[] args) { //Criando um ArrayList. ArrayList lista = new ArrayList(); //Para adicionar elementos ao final da lista, usamos o metodo add lista.add("Sao Paulo"); lista.add("Belo Horizonte"); lista.add("Rio de Janeiro"); lista.add("Bahia"); lista.add("Amazonia"); imprime("Elementos adicionados ate agora", lista); //Para adicionar em uma posicao especifica utilizamos o indice lista.add(1, "Parana"); lista.add(3, "Acre"); imprime("Lista depois de adicionar mais dois elementos", lista); //Podemos acessar um elemento da lista usando get System.out.println("O 3 elemento da lista e: " + lista.get(2)); //Podemos obter o tamanho da lista utilizando o metodo size() System.out.println("O tamanho da lista e: " + lista.size()); //Utilizamos remove para remover um elemento da lista lista.remove("Amazonia"); imprime("Lista depois de remover 'Amazonia'", lista); //Podemos verificar se existe algum elemento na lista if(lista.contains("Sao Paulo")) System.out.println("Sao Paulo existe"); else System.out.println("Sao Paulo nao existe"); if(lista.contains("Ceara")) System.out.println("Ceara existe"); else System.out.println("Ceara nao existe"); //Podemos ordenar uma lista utilizando o sort Collections.sort(lista); imprime("Lista ordenada", lista); } // Percorre todos elementos de qualquer colecao private static void imprime(String titulo, ArrayList lista) { System.out.println(titulo + ":"); for(String str : lista) { System.out.println(str); } System.out.println(); }}O Vector nao e mais utilizado, e uma classe antiga, anterior a Collections Framework e hoje nao ha mais motivos para usa-la. O ArrayList e seu substituto direto.Existe uma diferenca entre o ArrayList e o LinkedList. A diferenca e que o ArrayList baseia num array convencional, portanto, e facil acessar qualquer elemento e inserir objetos no final do array. Por outro lado, e mais custoso inserir elementos no meio do array, pois alguns elementos terao de ser deslocados. Ja o LinkedList e uma lista duplamente encadeada. Isso quer dizer que e facil inserir objetos em qualquer ponto da lista, mas e muito complicado acessar uma posicao especifica (o java tera que percorrer a lista toda ate chegar la).MAP (Hashtable, LinkedHashMap, HashMap e TreeMap):Um Map identifica seus elementos atraves de chave / valorHashMap - E um Map desorganizado, isto e, a ordem de iteracao dos elementos e desconhecidaHashtable - Similar ao HashMap, porem nao aceita valor nulo tanto para chaves quanto para valores.LinkedHashMap - Similar ao LinkedHashSet, porem esta e a versao que implementa a interface MapTreeMap - Ordena seus elementos atraves da chave por alguma regra.Exemplo:Um exemplo simples e pratico de uso de map seria para um sistema de biblioteca, onde cada livro possui um codigo para busca:public class Livro { private String codigo = ""; private String nome = ""; public String getCodigo() { return codigo; } public void setCodigo(String codigo) { this.codigo = codigo; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; }}import java.util.HashMap;public class Biblioteca { public static void main(String[] args) { // os objetos entre as tags < > definem os valores fixos de chave //