Boa tarde, Edson! Tudo bem com você?
A ideia deste exercício que você especificou é ler os números até encontrar o número 0, armazená-los em uma lista, e depois ordenar essa lista em ordem crescente. Por fim, exibir os números ordenados, desconsiderando o 0. Para isso, uma possível solução é o código abaixo:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class OrdenaNumeros {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> numeros = new ArrayList<>();
System.out.println("Digite os números (0 para terminar):");
while (true) {
int numero = scanner.nextInt();
if (numero == 0) {
break;
}
numeros.add(numero);
}
Collections.sort(numeros);
System.out.println("Números ordenados:");
for (int num : numeros) {
System.out.print(num + " ");
}
}
}
Resultado:

Explicação de cada trecho do código:
- Importações: Importamos
ArrayList
, Collections
, e Scanner
para usar listas, ordenar e ler a entrada do usuário, respectivamente. - Lista de Números: Criamos um
ArrayList
para armazenar os números digitados pelo usuário. - Leitura dos Números: Usamos um laço
while (true)
para ler os números até que o usuário digite 0. Quando 0 é digitado, o laço é interrompido com break
. - Ordenação: Utilizamos
Collections.sort(numeros)
para ordenar a lista de números em ordem crescente. - Exibição dos Números: Finalmente, usamos um laço
for
para imprimir os números ordenados.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!