¿Por qué newS.nextInt informa que la matriz está fuera de los límites? ¿Practica en Niuke.com?
En el código anterior, Scanner newS=new Scanner(System.in) en la línea 5 crea un nuevo objeto Scanner para leer los valores ingresados por el usuario. Sin embargo, en la línea 6, se llama al método newS.nextInt(). Si el usuario no ingresa nada en este momento, se generará una excepción java.util.NoSuchElementException, lo que provocará que el programa se cierre de manera anormal.
La solución es crear solo un objeto Scanner y reutilizar ese objeto en un bucle para evitar crear múltiples objetos Scanner. El código modificado es el siguiente:
importar java.util.Scanner;
importar java.util.Arrays;
public class Main {
public static void main(String[] args) {
Escáner sc = new Scanner(System.in);
int total = sc.nextInt(); p >
int[] store = new int[total];
for (int i = 0; i < total; i++) {
store[i] = sc nextInt();
}
int[] ints = Arrays.stream(store).distinct().sorted().toArray();
for (int anInt : ints) {
System.out.println(anInt);
}
}
}< / p>
En el código anterior, solo creamos un objeto Scanner y reutilizamos este objeto en el bucle para leer los valores ingresados por el usuario, evitando el problema de crear múltiples objetos Scanner. Al mismo tiempo, también simplificamos el código para hacerlo más conciso y fácil de leer.