lista ou conjunto. Antesde realizar a busca binaria, sempre sera necessario classificar alista para depois realizar a buscar por um elemento, caso contrariosuas buscas poderao nao ser confiaveis, existe 2 formas diferentede realizar a classificacao em de uma lista. Classificacao pelaordem natural crescente e numerica ou alfabetica, onde so enecessario passar a lista como paramentro, ou utilizando a classeComparator ou Comparable, conforme ja foi demonstrandoanteriormente sobrescrecendo os metodos compareTo() ecompare(). Realizando desta outra forma, aclassificacao da busca devera receber como parametro nao so alista como a classe que a classificou para efetuar a busca na mesmaforma que a classificacao da lista. Isto porque o metodobinarySearch() sempre ira retornar um numeral inteirorelativo a sua posicao na lista. Emcaso do metodo binarySearch() nao encontrar na lista oelemento a ser encontrado, fara com que retorne um valor negativo einteiro, este valor e como se fosse o valor relativo a sua posicaona lista.Exemplo: int[] listIt= {2,1,6,5,4}; Arrays.sort(listIt);//classificadoordem crescrescente Realizaruma busca pelo algarismo 3, tera o retorno de -3 que seria suaposicao caso este item estivesse na lista.System.out.println(Arrays.binarySearch(listIt,3));//listae o algarismo 3Saida:-3 Aquifaremos um outro exemplo com textopublicclassBinarySearch { publicstaticvoidmain(String args[]){ //criandouma listamanobrasem formato texto String[] manobras= {"Snaking","Cutback","Pump", "Floater","Re-entry"}; //classificaem ordem alfabetica Arrays.sort(manobras); //imprimecada uma for(Strings:manobras) System.out.print(s+"- "); //buscapela manobra 'CutBack' System.out.println("\nmanobras1:CutBack= "+Arrays.binarySearch(manobras,"Cutback")); System.out.println("ordemdecrescente"); //Intenciaclasse que utiliza Comparator que elabora uma //CLASSIFICACAOem ordem decrescente DescSorcComparatordsc=newDescSorcComparator(); //classificaem ordem decrescente Arrays.sort(manobras,dsc); //imprimeem ordem decrescente for(Strings:manobras) System.out.print(s+"- "); //buscaa manobra 'Cutback' como se fosse uma lista //classificada em ordem crescente System.out.println("\nmanobras2:CutBack" +Arrays.binarySearch(manobras,"Cutback")); //buscaa manobra 'Cutback' como se fosse uma lista //classificada em ordem decrescente System.out.println("manobras3:CutBack" +Arrays.binarySearch(manobras,"Cutback",dsc)); } staticclassDescSorcComparator implementsComparator<String>{ @Override publicintcompare(String o1,String o2){ returno2.compareTo(o1); } }}Saida:Cutback- Floater - Pump - Re-entry - Snaking - manobras1:CutBack= 0ordemdecrescenteSnaking- Re-entry - Pump - Floater - Cutback - manobras2:CutBack-1manobras3:CutBack 4################## LISTStamanho: 5indice3: FloaterSnaking- Shoulder - Pump - Aereo - Cutback - indice1: ShoulderConvercoesentre listas Porhaverem varias formas de se armazenar alementos em diferentes listasdisponiveis pelas APIs Java, sempre e bom conhecermos formas faceis,praticas e confiaveis para realizar a convercao entre tipos delista diferentes e ai que entra o metodo Arrays.asList(String[]array). Este metodo permite que ao passa um array comoparamentro lhe retorna uma lista do tipo List, o inversotambem ocorre como podemos ver usando a classe List seu metodo.toArray(List list) passando uma lista como parametro List econverte em array. //criandouma arraylist String[] manobras= {"Snaking","Cutback","Pump", "Floater","Re-entry"}; //converteem List Listlista= Arrays.asList(manobras); System.out.println("tamanho: "+lista.size()); System.out.println("indice3: "+lista.get(3)); //alterao elemento de indice 3 na List lista.set(3,"Aereo"); //alterao elemento de indice 1 no array manobras[1]="Shoulder"; //imprimeo array for(Strings:manobras) System.out.print(s+"- "); //imprimeo indice 1 deList System.out.println("\nindice1: "+lista.get(1));Saida:tamanho: 5indice3: FloaterSnaking- Shoulder - Pump - Aereo - Cutback - indice1: ShoulderItarator Comas novas versoes do Java, houve uma facilidade na criacao de novasiteracoes com os loops, for, do e while. Mas apesar de estar cadavez mais escasso, e possivel encontrar em alguns codigos teracoescom listas utllizando a class Iterator. Seobservarmos, tanto ArrayList, List, LisnkedList, entre outraspossuem um metodo iterator()que faz retornar um objeto com valores da lista e possuindo variosmetodos que facilitam na iteracao entre elementos conformemostramos no exemplo abaixo: publicintcalculaSoma(Listlista){ Iteratorit= lista.iterator(); inttoReturn= 0; while(it.hasNext()){ inti= ((Integer)it.next()).intValue(); toReturn+=i; } returntoReturn; }UtilizandoSets Sempreque formos trabalhar