classes de qualquer tipo)Exemplo de uso:Map<String, String> dns = new HashMap<String, String>();dns.put("scotty.mit.edu", "18.227.0.87");System.out.println(dns.get("scotty.mit.edu"));System.out.println(dns.containsKey("scotty.mit.edu"));System.out.println(dns.containsValue("18.227.0.87"));dns.remove("scotty.mit.edu");System.out.println(dns.containsValue("18.227.0.87"));// => "18.227.0.87", true, true, falseOutros metodos uteis em mapas (map):keySet() retorna um Set de todos as chavesvalues() retorna uma Collection de todos os valores (use ArrayList ou Set para armazena-lo)entrySet() returna um Set de pares chave,valor. Cada par e um objeto Map.Entry. Map.Entry suporta getKey, getValue, setValue ;Comparacao e OrdenacaoPara uso das colecoes ordenadas e preciso tambem definirmos a funcao compareTo nas classes que definirmos. Esta funcao e usada para decidir, entre dois objetos, qual e o maior ou se sao iguais.(a.compareTo(b)) devera resultar em um numero menor que zero se a < b, em zero se a = b e, finalmente, em um numero maior que zero se a > b .Exemplos de comparacao:Integer um = 1;System.out.println(um.compareTo(3));System.out.println(um.compareTo(-50));String jose= "Jose";System.out.println(jose.compareTo("Ana"));System.out.println(jose.compareTo("Ze"));// => -1 , 1, 4, -2Veja que as classes String e Integer ja implementam uma funcao compareTo corretamente. Nas classes definidas pelo programador esta funcao devera ser definida corretamente. Mais a frente iremos defini-la para nosso exemplo NomeCompleto. Por enquanto vamos ver como usar compareTo com listas para ordenar alfabeticamente uma lista:List<String> nomes = new ArrayList<String>();nomes.add("Sailor");nomes.add("Lula");nomes.add("Bobby");nomes.add("Santos");nomes.add("Dell");Collections.sort(nomes);// nomes => [ "Bobby", "Dell", "Lula", "Sailor", "Santos" ]Interface ComparablePodemos usar Colletions.sort com a lista acima porque Strings implementam Comparable. Isto e, Strings tem uma ordem natural. Para que uma classe NomeCompleto seja Comparable, voce deve implementar:int compareTo(NomeCompleto obj);Exemplo:public class NomeCompleto implements Comparable<NomeCompleto> { ... public int compareTo(NomeCompleto o) { int compare = this.sobrenome.compareTo(o.sobrenome) if (compare != 0) return compare; else return this.nome.compareTo(o.nome); }}Usando a nova classe Comparable NomeCompleto:List<NomeCompleto> nomes = new ArrayList<NomeCompleto>();nomes.add(new NomeCompleto("Nicolas", "Cage"));nomes.add(new NomeCompleto("Laura", "Dern"));nomes.add(new NomeCompleto("Harry", "Stanton"));nomes.add(new NomeCompleto("Diane", "Ladd"));nomes.add(new NomeCompleto("William", "Morgan"));nomes.add(new NomeCompleto("Dirty", "Glover"));nomes.add(new NomeCompleto("Johnny", "Cage"));nomes.add(new NomeCompleto("Metal", "Cage"));System.out.println(nomes);Collections.sort(nomes);System.out.println(nomes);// => [Johnny Cage, Metal Cage, Nicolas Cage, Laura Dern, Crispin Glover,// Diane Ladd, William Morgan, Harry Stanton]Objetos Comparadores (Comparator)Para criar mais de um metodo de ordenacao voce deve definir classes Comparadoras. A classe comparadora simplesmente e uma classe com a implementacao da funcao compateTo entre dois objetos:int compare(Foo o1, Foo o2);Exemplo de Comparador, ordenando primeiro nome primeiro:public class PrimeiroNomePrimeiro implements Comparator<NomeCompleto> { public int compare(Nome n1, Nome n2) { int ret = n1.nome.compareTo(n2.nome); if (ret != 0) return ret; else return n1.sobrenome.compareTo(n2.sobrenome); }}Isso devera ser feito em arquivo separado do NomeCompleto.java: PrimeiroNomePrimeiro.javaPara usar o Comparador:List<NomeCompleto> nomes = new ArrayList<NomeCompleto>();...Comparator<NomeCompleto> primeiroNome = new PrimeiroNomePrimeiro();Collections.sort(nomes, primeiroNome);System.out.println(nomes);// => [Crispin Glover, Diane Ladd, Harry Stanton, Johnny// Cage, Laura Dern, Metal Cage, Nicolas Cage, William// Morgan]Outra maneira de ordenar e usando TreeSet. Isso faz a ordenacao de maneira automatica, sem precisar chamar a funcao sort. Para funcionar os objetos da TreeSet devem ser Comparable ou voce deve definir uma classe Comparator.SortedSet<NomeCompleto> nomes = new TreeSet<NomeCompleto>(new PrimeiroNomePrimeiro());nomes.add(new NomeCompleto("Laura", "Dern"));nomes.add(new NomeCompleto("Harry", "Stanton"));nomes.add(new NomeCompleto("Diane", "Ladd"));System.out.println(nomes);// => [Diane Ladd, Harry Stanton, Laura Dern]AprofundandoProcurar e estudar na documentacao do java as classes apresentadas nesta aula: (veja java.util.*) em http://java.sun.com/j2se/1.5.0/docs/api