Por que meu loop de classificação parece anexar um elemento onde ele não deveria?

Eu estou tentando classificar uma matriz de Strings usandocompareTo(). Este é o meu código:

static String Array[] = {" Hello ", " This ", "is ", "Sorting ", "Example"};
String temp;

public static void main(String[] args)
{

   for (int j=0; j<Array.length;j++)
   {
       for (int i=j+1 ; i<Array.length; i++)
       {
           if (Array[i].compareTo(Array[j])<0)
           {
               String temp = Array[j];
               Array[j] = Array[i];
               Array[i] = temp;
           }
       }
       System.out.print(Array[j]);
   }
}

Agora a saída é:

Hello  This Example Sorting is

Estou obtendo resultados, mas não os resultados que quero obter, que são:

Hello This Example Is Sorting

Como posso ajustar meu código para classificar a matriz de string corretamente?

questionAnswers(8)

yourAnswerToTheQuestion