Classificação
Java facilita classificar um array fornecendo um método de ordenação - ou melhor, um monte de tipos de métodos. Assim como o StringBuilder permite que você passe quase qualquer coisa para append () , você pode passar quase qualquer matriz para Arrays.sort().
Arrays é a primeira classe fornecida pelo Java que usamos que requer uma importação. Para usá-lo, você deve ter uma das duas instruções a seguir na sua classe:
import java.util.* // import whole package including Arrays
import java.util.Arrays; // import just Arrays
Há uma exceção, embora não apareça com frequência no exame. Você pode escrever java.util.Arrays toda vez que é usado na classe em vez de especificá-lo como uma importação.
Lembre-se de que, se você receber um trecho de código com um número de linha que não começa com 1, você pode assumir que as importações necessárias estão lá. Da mesma forma, você pode assumir que as importações estão presentes se é mostrado para você um trecho de um método.
Este exemplo simples classifica três números:
int[] numbers = { 6, 9, 1 };
Arrays.sort(numbers);
for (int i = 0; i < numbers.length; i++)
L System.out.print (numbers[i] + " ");
O resultado é 1 6 9, como você deve esperar que seja. Observe que nós tivemos que percorrer a saída para imprimir os valores na matriz. Apenas imprimindo a variável array diretamente dá o hash chato de [I@2bd9c3e7.
Tente novamente com os tipos de string :
String[] strings = { "10", "9", "100" };
Arrays.sort(strings);
for (String string : strings)
System.out.print(string + " ");
Desta vez, o resultado pode não ser o esperado. Este código gera 10 100 9 . O problema é que String classifica em ordem alfabética, e 1 classifica antes de 9. (Numbers classificar antes letras e letras maiúsculas classificam antes de minúsculas, caso você esteja se perguntando.) Para o exame OCP, você aprenderá a criar ordens de classificação personalizadas usando algo chamado comparador.
Você notou que sorrateiramente foi reforçado o loop for neste exemplo? Já que não estamos usando o índice, não precisamos do tradicional loop for. Isso não impede que os criadores do exame usem, no entanto, vamos usar os dois para manter você afiado!