2015-11-19 3 views
0

Я пытаюсь написать веб-гусеничный. когда я перехожу через большую страницу, моя переменная arraylist не может хранить все данные. Это бросает ниже исключения. Исключение в потоке «Thread-0» java.lang.StackOverflowError».Сколько строк может содержать арраист?

Что такое лучший способ держать эти URLs, как мне нужно, чтобы посетить эти ссылки и дочерние ссылки и так далее.

Я думал о сохранении базы данных или записи в файл, но этот механизм может замедлить производительность искателя.

ответ

0

Ограничение на пропускную способность ArrayList равно Integer.MAX_VALUE. Однако это зависит от объема памяти, доступного для JVM. Если для хранения строк доступно достаточное пространство кучи, оно будет хранить огромное количество строк.

3

, когда я иду через большую страницу мой ArrayList переменная не может содержать все данные

Это не правильно.

Exception in thread "Thread-0" java.lang.StackOverflowError 

StackOverflowException не вызвано кончаются ArrayList мощности, которая составляет 2^31-1 записи. Это вызвано чрезмерной рекурсией.

Возможно, вы не отслеживаете URL-адреса, которые вы уже посетили, и столкнулись с циклами ссылок.