Array verlängern

  • Themenstarter Themenstarter wa213
  • Beginndatum Beginndatum
W

wa213

Gast
hallo, ich bin blutiger Anfänger wie ihr sehehn werdet.

ich habe hier eine Methode geschrieben um ein int Array zu verlängern

Java:
public static int[] verlaengern(int einArray[],int a) {
		int[] hilfe;
		hilfe = new int[einArray.length+1];
		for (int i=0;i<einArray.length;i++) {
			hilfe[i]=einArray[i];
			}
		hilfe[einArray.length]=a;
		einArray=hilfe;
		return einArray;
		}

ich bekomme keinen Fehler, aber mein Array bleibt unverändert, wo ist mein Fehler?

Vielen Dank

lg
 
Beim nächsten mal: poste den Fehler und auch die Zeilenangaben.
Zu deinem Fehler: in Zeile 7 fehlt ein
Code:
-1

P.S. Warum nicht gleich
Code:
return hilfe
?
 
das ist kein fehler auds meiner sicht, a soll ja hinten an einArray angehängt werden, warum also -1 und wie gesagt eclipse zeigt hier auch keinen Fehler, daher konnte ich ihn nicht angeben.

zu zweitens :ich möchte ja dass mein Array ersetzt wird, brauch ich die letzte Zeile trotzdem nicht?

lg
 
Beim ausführen wird dir eine ArrayIndexOutOfBoundsException geschmissen.
-1 musst du auch nicht beim a machen:
[JAVA=7]hilfe[einArray.length-1]=a;[/code]
Und durch die Zuweisung in der vorletzten Zeile ersetzt du das ursprüngliche Array nicht.
 
das ist kein fehler auds meiner sicht...


Deine Sicht ist hier leider irrelevant, es zählt die Sicht der JVM, und für die ist es ein Fehler.

Das erste Feld eines Arrays hat den Index
Code:
0
und das letzte dementsprechend den Index
Code:
array.length-1
. Isso.
 
Zuletzt bearbeitet:
Hi!
Java:
int[] oldArray;
int[] newArray = new int[newLength];
System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
// neues Element einfügen
// eventuell oldArray-Referenz mit neuer Referenz überschreiben (einfaches oldArray = newArray; )
Bye!
 
Das ist kein Fehler, da hat der TO schon recht. "hilfe" ist um sin Element länger als "einArray", deswegen passt "einArray.length". Isso.
@TO: Darf man fragen, wie du die Methode aufrufst? Du must das zurückgegebene Array nämlich auch zuweisen, sonst verschwindet es im Hades.
 
Hi,

da aber zu beginn das Array um ein Feld größer initialisiert wird:

Java:
hilfe = new int[einArray.length+1];

ist der Zugriff aufs letzte Element korrekt durch

Java:
hilfe[einArray.length]=a;

wahlweise aber auch durch

Java:
hilfe[hilfe.length-1]=a;

Der Code von wa213 dürfte funktionieren.

Gruß Micha
 
also ich hab da eine methode ausgabe
Java:
public static void ausgabe(int einArray[]) { 
		for (int i=0;i<einArray.length;i++) {
			System.out.print(einArray[i]+" ");
		}
		System.out.println();
		}

und in main hab ich dannnur :

Java:
verlaengern(einArray,6);
		ausgabe(einArray);


vielen Dank für eure HIlfe
 
Hallo,

in Deiner Methode wird das Array auch größer aber Du musst es auch wieder zuweisen, wie Spacerat schon schrieb:

Java:
einArray = verlaengern(einArray,6);

Gruß Micha
 

Zurück
Oben