mit .equals Array befüllen schlägt teilweise fehl

Anubis273

Mitglied
Hey Ho Zusammen,

ich bin gerade wirklich am verzweifeln und muss mal an dieser Stelle eure Hilfe in Anspruch nehmen, in der Hoffnung, dass mir jemand helfen kann. :bahnhof:

Ich poste euch hier mal einen Code Ausschnitt, ich befülle mein Feld arr mit den Werten, welche ich vorher aus elements_b_ca und elements_e_ca verglichen habe. Funktioniert auch einwandfrei.
Nun möchte mich mein Feld arr1 auf die gleiche Art und Weise befüllen, indem ich elements_b_ca mit elements_a_ca vergleiche, funktioniert aber leider nicht. Jemand ne Idee ?

Hier mal der Code:

Java:
String[] arr = new String[elements_b_ca.length + elements_e_ca.length];
			String[] arr1 = new String[elements_b_ca.length + elements_a_ca.length];
			char[] dualstack = new char[elements_b_ca.length+ elements_e_ca.length];
			String[] dualst = new String[elements_b_ca.length + elements_e_ca.length];

			for (int i = 0; i < elements_b_ca.length - 1; i++) {
				for (int k = 0; k < elements_e_ca.length - 1; k++) {
					for (int l = 0; l < elements_a_ca.length - 1; l++) {

						if (elements_b_ca[i].equals(elements_e_ca[k])) {
							arr[i] = elements_b_ca[i];
							if (elements_b_ca[i].equals(elements_a_ca[l])) { 
								arr1[i] = elements_a_ca[i];
								
							dualstack[i] = arr[i].charAt(1);
							if (dualstack[i] == '5' || dualstack[i] == '4') {
								dualst[i] = "Dualstack " + arr[i];
							}
							}
						}

					}

				}

Für eine hilfreiche Idee wäre ich sehr dankbar !

Anubis273
 
Zunächst einmal würde ich nicht beide Arrays in der selben Schleife ( k und l ) befüllen, da hast Du ja unzählige unütze Schleifendurchläufe.
Ausserdem stimmt der verwendete Index in Zeile 14 nicht und die Schleifen durchlaufen die Arrays nur bis zum vorletzen Element
Code:
i < ...length - 1
==>
Code:
i < ...length
 
das if in Zeile 13 wird nur dann überhaupt geprüft, wenn das if in Zeile 11 Erfolg hat,
daher werden wohl zwischen elements_b_ca und elements_a_ca die meisten Übereinstimmen übersprungen

die Pozentierung ist wirklich gefährlich,
bei je 100 Elementen, gibt es statt 2x 10.000 Durchläufe ganze 1 Mio. Kombinationen
 
Vielen Dank für die schnelle Antwort an Michael... und Slater !

Ihr habt natürlich Recht gehabt, ich habe jetzt die if Bedingungen und die for Schleifen getrennt.
So läuft es natürlich ein Stück schneller und der vergleich funktioniert jetzt auch :toll:
Ich bin ein Schaaf, vor lauter Bäumen den Wald nicht gesehen !

Danke nochmal ! :toll:
 

Zurück
Oben