Collections.binarySearch

2 respostas
M

Tenho essa questão no whizlabs

public class Teste {

public static void main(String args[]){

ArrayList aList=new ArrayList();

aList.add(USA);

aList.add(Russia);

aList.add(UK);

int pos=Collections.binarySearch(aList, Russia);

System.out.println(pos);

}

}

A- 0
B- 1
C - 2
D - Compiler error
E - Exception at runtime
F - Compiles correctly, output is undefined

minha resposta foi 1, mas errei. A resposta correta é F.

Não entendi muito o porque, rodei o programa e a saída foi 1.

Gostaria de saber se alguém pode me esclarecer melhor essa questão?

2 Respostas

fmeyer

Por que busca binaria soh vai funcionar se sua colecao tiver ordenada.

se vc der um Collections.sort(aList) antes de executar o binary search ele sempre vai retornar 0;

mais detalhes em

LPJava

lembre-se que um ArrayList o acesso é aleatorio, e antes de vc realizar uma pesquisa em um conjunto ele deve ta ordenado… o que nao acontece com o exemplo acima… agora se nao tivesse a letra F a sua resposta taria correta pq a questao quer saber o resultado como tivesse ordenado mesmo que o sort nao presente. Ja tive duas questoes desse tipo e errei… por falta de atenção…

Criado 18 de julho de 2007
Ultima resposta 19 de jul. de 2007
Respostas 2
Participantes 3