Java uso do toArray em interface Set, ordenando resultados

0 respostas
A
No  trecho do código"//Apresentação dos nomes na matriz RELACAO1, após  a

//entrada dos dados na coleção LISTA.

String[] RELACAO1 =  (String[]) LISTA.toArray(new String[0]);

System.out.println();

System.out.printf(“Total de %1d elementos.\n\n”,T);

for( I = 0; I < T; I++) {

System.out.printf("% nome = %s\n", I+1, RELACAO1[I]);

}", a presentação dos resultados estão saindo ordenados. Alguém pode explicar? A seguir, o programa completo para ser testado.
import java.util.*;

public class C08EX15 {

public static void main(String[] args) {

Set LISTA = new HashSet<>();

Scanner sc1 = new Scanner(System.in);

Scanner sc2 = new Scanner(System.in);

long T;

int I;

String N;
//Entrada de nomes na coleção LISTA
		System.out.println();
		System.out.print("Quantos nomes a entrar? ");
		T = sc1.nextInt();
		
		System.out.println();
		for( I = 0; I < T; I++) {
			System.out.printf("Entre com %dº nome: ", I+1);
			N = sc2.nextLine();
			LISTA.add(N);
		}
		
		T = LISTA.size();
		
		**//Apresentação dos nomes na matriz RELACAO1, após  a**

** //entrada dos dados na coleção LISTA.**
** String[] RELACAO1 = (String[]) LISTA.toArray(new String[0]); **
** System.out.println();**
** System.out.printf(“Total de %1d elementos.\n\n”,T);**
** for( I = 0; I < T; I++) {**
** System.out.printf("%dº nome = %s\n", I+1, RELACAO1[I]);**
** }**

//Remoção de um nome da lista
		System.out.println();
		System.out.print("Qual nome será removido.......: ");
		N = sc2.nextLine();
		LISTA.remove(N);
		T = LISTA.size();
		
		//Apresentação dos nomes na matriz RELACAO2, após  a
		//entrada dosdados na coleção LISTA.
		String[] RELACAO2 =  (String[]) LISTA.toArray(new String[0]); 
		System.out.println();
		
		for( I = 0; I < T; I++) {
			System.out.printf("%dº nome = %s\n", I+1, RELACAO2[I]);
		}
		System.out.printf("Total de %1d elementos.\n\n",T);
		
		System.out.println();
		
		//Remoção de todos os itens da lista.
		System.out.println("Remoção de todos os itens da lista.");
		LISTA.clear();
		T = LISTA.size();
		System.out.println("T = "+ T);
		
		/*Apresentação dos nomes após a remoção de todos os itens,
		 *o conteúdo de RELACAO2  não será apresentado, pois está vazia,
		 *o laço for não é executado. */
		String RELACAO3[] = (String[]) LISTA.toArray(new String[0]);
		System.out.printf("Total de %1d elementos.\n\n",T);
		//System.out.println();
		for(I = 0; I < RELACAO3.length; I++) 
			System.out.printf("%dº nome = %s\n", I+1, RELACAO3[I]);
		
		System.out.print("\tFim.");
		sc1.close();
		sc2.close();
}

}

Criado 27 de março de 2020
Respostas 0
Participantes 1