Collections.binarySearch

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?

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

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…