Ich schrieb den Code, der alle Links auf einer Webseite zieht. Ich überprüfe mit Arraylist, um zu verhindern, dass der gleiche Link erscheint. Aber ich bekomme Stackoverflow-Fehler, wenn es zu viele Links auf der Website gibt. Ich behalte Links in Arraylist für den späteren Gebrauch. Wie vermeide ich diesen Stackoverflow-Fehler? Könnte die Ursache des Problems arraylist sein?Wie behebe ich StackOverflow Fehler?
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önnen Sie versuchen, Entfernen Sie die Rekursion in Ihrer Methode und implementieren Sie sie iterativ. –
was ist 'k' hier? 'Element link: linkler' macht keinen Sinn – nullpointer
oder fügen Sie mehr RAM zu Ihrem process – XtremeBaumer