Я практикуюсь для примеров более свежего интервью для Java. Я пытаюсь написать программу для поиска повторяющихся чисел между 1
до N
, где N задается пользователем вместе с самими числами. Вот код:OutOfMemoryError: Java куча пространства при попытке прочитать 5 ints в массив
import java.io.DataInputStream;
import java.io.IOException;
public class DuplicateNumbers {
public static void main(String[] args) throws IOException {
DataInputStream in = new DataInputStream(System.in);
System.out.println(" Enter the number of numbers ");
int a = in.readInt();
int[] num = new int[a];
System.out.println(" Enter the ints one by one ");
for (int b = 0; b < a; b++) {
System.out.println(" Enter no "+(b+1));
num[b]=in.readInt();
}
int c = 0;
for (int d = 0; d < a; d++) {
int f = 0;
c = num[d];
for (int e=0; e<a; e++) {
if (c==num[e]) {
f++;
}
}
if(f > 1)
System.out.println(" Duplicate number "+c);
}
}
}
Но я получаю следующее сообщение об ошибке в Eclipse, Неон:
Enter the number of numbers
5
Exception in thread "main" java.lang.OutOfMemoryError:
Java heap space at DuplicateNumbers.main(DuplicateNumbers.java:14)
Что не так? Почему ошибка пространства кучи JVM? Код компилируется и работает нормально.
Ну, ** не ** * «работать нормально» *, именно поэтому вы здесь просят об исключении ... врезаться ли он на линии 'int [] num = new int [a];' вы пытались добавить точки останова и отлаживать код? – luk2302
Где вы узнали DataInputStream, как читать данные пользователя? –
Нет, сэр, я не пытаюсь скопировать чей-то код. У меня просто есть список программ для практики, где я пытаюсь создать код самостоятельно, и когда у меня заканчиваются логика и терпение, я прошу о помощи. –