StackOverflowError erst ab 87 Array Elementen

Hero

Mitglied
Hallo,
ich bekomme ab 87 Array Elementen einen StackOverflowError. Das merkwürdige ist, dass es vorher läuft aber ab 87 nicht mehr. verwiesen wird auf einer Rekursion Methode auf den Rekursiven Funktion Aufruf.

Das Array wird benutzt um die Häufigkeit der Rekursiven-Methode zu definieren also
Java:
if(i<array.length)

und mit den Array Elementen wird gerechnet aber der Inhalt von Array wird nicht verändert.
Was ich noch sagen sollte ist, dass ich die Array Elemente über (Math.random()*20) definiere.

Im Prinzip funktioniert mein Algorithmus aber wie gesagt, ab 87

Java:
public static Circle2D kreisPaar(Point2D mittelpunkt, Point2D[] pnts, int i, int j, double radius){ // Durch diese Rekursion-Methode sparen wir 2 for-Schleifen
		double temp=0;	 Point2D mptmp = null;
		
		if(i<pnts.length){
			if(j<pnts.length){
				temp=(Math.sqrt((pnts[j].x-pnts[i].x)*(pnts[j].x-pnts[i].x))+((pnts[j].y-pnts[i].y)*(pnts[j].y-pnts[i].y))) /2;
				mptmp=new Point2D((pnts[i].x+pnts[j].x)/2,(pnts[i].y+pnts[j].y)/2);
				//System.out.println(i+"             "+j+"      "+temp+ ":::::::::::" +mptmp);
				j++;
				
				if(radius<temp){
					radius=temp;
					mittelpunkt=mptmp;
					
				}
			}
		}
		
		if(j==(pnts.length)){ //Wenn j das letzte Element im Array erreicht hat, dann...
			i++; // soll i um 1 Zähler hochgezählt werden
			j=i+1; //und j wieder auf i+1 gesetzt werden
		}
		
		if(i!=(pnts.length)){ //Wenn i das letzte Element im Array noch nicht erreicht hat, dann...
			return kreisPaar(mittelpunkt,pnts,i,j, radius); //Springe in die Methode, nach oben zurück
		}
		
		
		Circle2D kreis=new Circle2D(mittelpunkt,radius); // dann sind alle Punkte miteinander vergleichen und 
		return kreis; //können zurück gegeben werden
	}
 
Zuletzt bearbeitet:

Hero

Mitglied
Sorry hab vergessen, den Code reinzu kopieren

Java:
public static Circle2D kreisPaar(Point2D mittelpunkt, Point2D[] pnts, int i, int j, double radius){ // Durch diese Rekursion-Methode sparen wir 2 for-Schleifen
		double temp=0;	 Point2D mptmp = null;
		
		if(i<pnts.length){
			if(j<pnts.length){
				temp=(Math.sqrt((pnts[j].x-pnts[i].x)*(pnts[j].x-pnts[i].x))+((pnts[j].y-pnts[i].y)*(pnts[j].y-pnts[i].y))) /2;
				mptmp=new Point2D((pnts[i].x+pnts[j].x)/2,(pnts[i].y+pnts[j].y)/2);
				//System.out.println(i+"             "+j+"      "+temp+ ":::::::::::" +mptmp);
				j++;
				
				if(radius<temp){
					radius=temp;
					mittelpunkt=mptmp;
					
				}
			}
		}
		
		if(j==(pnts.length)){ //Wenn j das letzte Element im Array erreicht hat, dann...
			i++; // soll i um 1 Zähler hochgezählt werden
			j=i+1; //und j wieder auf i+1 gesetzt werden
		}
		
		if(i!=(pnts.length)){ //Wenn i das letzte Element im Array noch nicht erreicht hat, dann...
			return kreisPaar(mittelpunkt,pnts,i,j, radius); //Springe in die Methode, nach oben zurück
		}
		
		
		Circle2D kreis=new Circle2D(mittelpunkt,radius); // dann sind alle Punkte miteinander vergleichen und 
		return kreis; //können zurück gegeben werden
	}
 

Landei

Top Contributor
Durch diese Rekursion-Methode sparen wir 2 for-Schleifen

Das "Sparen" geht in diesem Fall eindeutig zu Lasten der Lesbarkeit. Manche Sachen lassen sich besser rekursiv formulieren, manche besser iterativ - wie diese. Und bei Iterationen wirst du jedenfalls keinen Stackoverflow bekommen.

87 Punkte erscheinen mir trotzdem ziemlich wenig für einen Stackoverflow zu sein.

Wenn ich das richtig sehe, willst du den kleinsten Kreis finden, der alle gegebenen Punkte umschließt. Dafür gibt es aber sicher bessere Algorithmen. Z.B. könntest du in jedem Schritt alle Punkte, die im aktuellen Kreis liegen (was sich einfach prüfen lässt), aus deiner Punkte-Liste rausschmeißen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zeppi Rekursion StackOverflowError Allgemeine Java-Themen 4
S Stackoverflowerror Allgemeine Java-Themen 2
javaerd Binomialkoeffizient ausrechnen, Exception in thread "main" java.lang.StackOverflowError Allgemeine Java-Themen 6
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
G StackoverflowError beim laden einer FXMML Datei Allgemeine Java-Themen 1
G maven 3.1.1 StackOverflowError Allgemeine Java-Themen 3
A Binäre Suche im Array mit StackOverflowError Allgemeine Java-Themen 3
E Interpreter-Fehler StackOverflowError Allgemeine Java-Themen 3
M StackOverflowError Allgemeine Java-Themen 9
E StackOverflowError Allgemeine Java-Themen 8
F Stackoverflowerror beheben Allgemeine Java-Themen 5
Schandro StackOverflowError bei Rekursion verhindern Allgemeine Java-Themen 14
U Kompilieren einer großen Datei if-else = StackOverflowError Allgemeine Java-Themen 4
J java.lang.StackOverflowError Debugging? Allgemeine Java-Themen 51
S StackOverflowError - Brett vor'm Kopf Allgemeine Java-Themen 6
T Profifrage: java.lang.StackOverflowError bei BigInteger Allgemeine Java-Themen 27
G StackOverflowError Allgemeine Java-Themen 6
F Warum StackOverFlowError? Allgemeine Java-Themen 6
M Input/Output FileChannel writes / werden diese gecached vom OS und dann erst geschrieben? Allgemeine Java-Themen 6
S Fehlermeldungen erscheinen erst in der Ausführung des Programms Allgemeine Java-Themen 11
H Runtime reagiert erst wenn Programm abbricht Allgemeine Java-Themen 1
D mouseWheelMoved => erst reagieren, wenn für 1s das Mausrad nicht mehr benutzt wurde Allgemeine Java-Themen 4
S Start des zweiten Threads erst nach Beenden des ersten Threads Allgemeine Java-Themen 13
T MEthodenauruf testen, wenn instanz erst erzeugt wird Allgemeine Java-Themen 0
D Nutzen, erst deklarieren, oder neu erstellen? Allgemeine Java-Themen 11
G Button-Registrierung beim ActionListener erst NACH Tastendruck Allgemeine Java-Themen 2
H Scanner: Ausgabe erst nach Abbruch Allgemeine Java-Themen 8
F externes Programm beginnt erst nach dem ende des mainprogrammes Allgemeine Java-Themen 3
-MacNuke- Calendar erst nach getTime() gesetzt? Allgemeine Java-Themen 4
T Threadsicheres wait() [lock erst mit wait() abgeben] Allgemeine Java-Themen 31
S Zweiten Thread erst starten wenn erster Thread beendet ist ? Allgemeine Java-Themen 6
B Datei erst öffnen, wenn EOF gesetzt ? Allgemeine Java-Themen 4
M Programmablauf nach letzter eingabe erst fortsetzten Allgemeine Java-Themen 2
G Aktualisierung erst nach minimiertem Browser Allgemeine Java-Themen 6
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
C externes Programm läuft erst nach schließen des mainprogramm Allgemeine Java-Themen 7
S [1/2done] Woher bekommt man libarys die es erst ab 1.6 gibt. Allgemeine Java-Themen 10
J Bibliotheken erst zur Laufzeit laden Allgemeine Java-Themen 5
N InputStream erst ab gegebener Position Allgemeine Java-Themen 4
S erst containsKey oder gleich get Allgemeine Java-Themen 9
bernd java.util.Scanner erst ab Java 1.5? Allgemeine Java-Themen 4
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben