Я написал код, который тянет все ссылки на веб-странице. Я проверяю с помощью Arraylist, чтобы предотвратить появление такой же ссылки. Но я получаю ошибку stackoverflow, если на сайте слишком много ссылок. Я продолжаю ссылки в Arraylist для последующего использования. Как избежать этой ошибки stackoverflow? Может ли причина проблемы быть arraylist?Как разрешить ошибку StackOverflow?
static ArrayList<String> linkleriTut = new ArrayList();
public void linkleriCek(String url, String taramaTuru) throws IOException{
try {
Document doc = Jsoup.connect(url).get();
Elements linkler = doc.select("a[href]");
for (Element link : linkler) {
if (!linkleriTut.contains(link.attr("abs:href"))) {
linkleriTut.add(link.attr("abs:href"));
}
}
}
}
catch (Exception e) {
}
if (taramaTuru.equals("Detaylı Tarama")) {
while (k < linkleriTut.size()) {
k++;
linkleriCek(linkleriTut.get(k), taramaTuru);
}
}
Вы можете попробовать удалить рекурсию в вашем методе и реализовать ее итеративно. –
Что такое 'k' здесь? 'Element link: linkler' тоже не имеет смысла – nullpointer
или добавляет больше бара к вашим процессам. – XtremeBaumer