Java Concat - Methode : Arrays

Diskutiere Java Concat - Methode : Arrays im Developer Network Forum im Bereich Hardware & Software Forum; Hallo! Ich soll eine Methode schreiben, die zwei Arrays aneinanderfügt. Die Methode bekommt ein int[] array1 und ein int[] array2 . Zurückgeben...
  • Java Concat - Methode : Arrays Beitrag #1
S

schneewind

Mitglied
Dabei seit
15.11.2008
Beiträge
15
Reaktionspunkte
0
Hallo!
Ich soll eine Methode schreiben, die zwei Arrays aneinanderfügt. Die Methode bekommt ein int[] array1 und ein int[] array2 .
Zurückgeben soll sie auch ein Array vom Typ int.

Bei meiner Methode entsteht ein Laufzeitfehler: ArrayIndexOutOfBoundsException

Nur weiß ich momentan nich so genau wo der Fehler liegt.
Meine Methodde sieht folgendermaßen aus:

int[] concat = new int[array1.length + array2.length];
for( int i = 0; i <concat.length; i++){
for (int j = 0; j<array1.length; j++){
concat= array1[j];
}
for (int k = 0; k<array2.length; k++){
concat[i+array1.length]=array2[k];
}
}
return concat;


Kann mir bitte jemand helfen ?

Danke!!

LG schneewind
 
  • Java Concat - Methode : Arrays Beitrag #2
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

ich wuerde nicht mit Schleifen arbeiten.
Schau Dir mal die statische Methode "arraycopy" der Klasse "System" an. Mit 2 Aufrufen dieser Methode erreichst Du sehr schnell Dein Ziel.

Gruss, FFNB.
 
  • Java Concat - Methode : Arrays Beitrag #3
S

schneewind

Mitglied
Dabei seit
15.11.2008
Beiträge
15
Reaktionspunkte
0
leider ist es eine vorgabe, dass wir mit schleifen arbeiten sollen. und das benutzen der klasse system ist auch nicht erlaubt.
 
  • Java Concat - Methode : Arrays Beitrag #4
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

dann solltest Du die aeussere Schleife weglassen und nur die beiden Schleifen nacheinander aufrufen und innerhalb der Schleifen einen Zaehler hochzaehlen.

Gruss, FFNB.
 
  • Java Concat - Methode : Arrays Beitrag #5
S

schneewind

Mitglied
Dabei seit
15.11.2008
Beiträge
15
Reaktionspunkte
0
Hallo!
Meine Methode sieht nun so aus:

int[] concat = new int[array1.length + array2.length];
int i =0 ;
for (int j = 0; j<array1.length; j++){
concat= array1[j];
i++;
}
i = 0;
for (int k = 0; k<array2.length; k++){
concat[i+array1.length]=array2[k];
i++;
}

return concat;


Ich frage mich jedoch an welcher Stelle genau der Laufzeitfehler auftritt. Ich bekomme leider keine Zeilenangabe.
Oder habe ich eventuell auch einen großen Denkfehler drin ?
Ich komme grad leider überhaupt nicht weiter.

Danke für die Hilfe!

LG schneewind
 
  • Java Concat - Methode : Arrays Beitrag #6
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

wieso Laufzeitfehler? Deine Methode funktioniert doch so wie sie ist.
Aber warum setzt Du den Zaehler vor dem zweiten Schleifendurchlauf wieder auf 0 und erhoehst ihn dann in der zweiten Schleife um die Anzahl der Duechlaeufe der ersten? Das koenntest Du Dir sparen...

Poste doch mal die komplette Klasse und die Fehlermeldung, die Du bekommst. An der Methode selbst liegt es nun nicht mehr.

Gruss, FFNB.
 
  • Java Concat - Methode : Arrays Beitrag #7
S

schneewind

Mitglied
Dabei seit
15.11.2008
Beiträge
15
Reaktionspunkte
0
also, es ist eine Onlineaufgabe und wir sollen wirklich nur den Code schreiben, den ich bereits gepostet habe.
das ist erstmal die aufgabe an sich:
Schreibt eine Methode, die zwei übergebene Arrays vom Typ
int[] miteinander verbindet und das daraus
resultierende Array vom Typ int[] zurückgibt. Die
Elemente des ersten Parameters int[] array1 müssen
in dem zurückzugebenden Array jeweils vor allen anderen Elementen des
zweiten Parameters int[] array2 stehen. Außerdem
darf die Reihenfolge der Elemente innerhalb der Arrays nicht verändert
werden.


der Methodenkopf (bereits gegeben) lautet folgendermaßen:
public static int[] concat(int[] array1, int[] array2) {




und das ist die Meldung die ich bekomme:

Erklärung:

Dein Code hat leider einen
Laufzeitfehler verursacht!

Fehlermeldungen des Kompilers:

java.lang.ArrayIndexOutOfBoundsException: 10
at Wrapper.concat(Wrapper.java:12)
at Evaluator.main(Evaluator.java:28)
at EvaluatorExecutor.main(EvaluatorExecutor.java:7)


jedoch stimmen die Zeilenangaben ( meiner meinung nach nicht.)

das ist alles was ich habe... Da fehlen jetzt halt nur die "Regeln"...also schleifen benutzen, keine Methoden der Klasse System usw...

danke
lg schneewind
 
  • Java Concat - Methode : Arrays Beitrag #8
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

ich hab Deinen Code wie folgt ausprobiert:

Code:
package test;

public class Main
{
	public static void main(String[] args) 
	{
		int[] array1 = new int[]{1,2,3};
		int[] array2 = new int[]{4,5,6};

		int[] result = test(array1, array2);

		for(int i : result)
		{
			System.out.print(i+",");
		}
	}

	private static int[] test(int[] array1, int[] array2)
	{
		int[] concat = new int[array1.length + array2.length];
		int i =0 ;
		for (int j = 0; j<array1.length; j++)
		{
			concat[i]= array1[j];
			i++;
		}
		i = 0;
		for (int k = 0; k<array2.length; k++)
		{
			concat[i+array1.length]=array2[k];
			i++;
		}
		return concat;
	}
}

Das Resultat ist wie gefordert: 1,2,3,4,5,6,

Meine Methode nach Deinen Anforderungen haette in etwa so ausgesehen:
Code:
	private static int[] test(int[] array1, int[] array2)
	{
		int[] concat = new int[array1.length + array2.length];
		int i=0;
		
		for (int j = 0; j<array1.length; j++)
		{
			concat[i]= array1[j];
			i++;
		}
		for (int k = 0; k<array2.length; k++)
		{
			concat[i]=array2[k];
			i++;
		}
		return concat;
	}

macht aber genau das Gleiche.

Gruss, FFNB.
 
  • Java Concat - Methode : Arrays Beitrag #9
S

schneewind

Mitglied
Dabei seit
15.11.2008
Beiträge
15
Reaktionspunkte
0
Hallo! ich habe jetzt das mit dem i geändert und habe auf einmal volle Punktzahl.
Danke für die Hilfe!

PS: kann man seine Beiträge eigentlich auch editieren ?
 
  • Java Concat - Methode : Arrays Beitrag #10
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

innerhalb von 15(?) Minuten, jedoch nur, wenn noch niemand geantwortet hat - glaube ich. ;)

Gruss, FFNB.
 
Thema:

Java Concat - Methode : Arrays

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben